9 Stimmen

Wohin mit meinem $(document).ready(function(){ Wenn ich Methoden in einer .js

Ich habe eine somefile.js erstellt, wo somefile.js einige jQuery-Methode enthält. Also zum Beispiel enthält es diese Funktion:

function showWindow(divID)
{
    var dialogDiv = $(divID);

    dialogDiv.dialog
    (
        {
            bgiframe: true,
            modal: true,
            autoOpen: false,
            show: 'blind'
        }
    )

    dialogDiv.dialog("open");
}

In meiner .aspx-Seite (oder was auch immer, es könnte eine .html-Seite sein) habe ich also eine Schaltfläche:

<input type="button" onclick="showPopUp('testDiv')" value="Click Me!" />

Meine Frage ist, wir werden showPopUp überall in unserer App verwenden. Wenn es von einem onClick-Ereignis aufgerufen wird, dann wo setze ich meine $(document).ready(function() da dieser Code nicht in der Seite, sondern in einer .js-Datei ist?

5voto

David Thomas Punkte 239063

Legen Sie die $(document).ready(...); im head der (x)html-Seite (oder auch .php, .aspx usw.) wie gewohnt, solange Sie darauf achten, dass sie nach der verlinkten script Datei (um Ihre somefile.js zu laden) und natürlich den Link zu Ihrem jQuery:

<head>
...
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="somefile.js"></script>

<script>
    $(document).ready(
     function() {
        $('input[type=button]').click().showPopUp('testDiv');
     }
    )
</script>

</head>

Bearbeitet Ich habe das Gefühl, dass ich etwas Offensichtliches in Ihrer Frage übersehe. Bitte kommentieren Sie, wenn ich völlig offensichtlich bin und Ihren Punkt übersehe...

5voto

Quasipickle Punkte 4215

Sie können es in die Javascript-Datei einfügen, wenn Sie möchten. Wenn Sie Hörer mit dem onclick-Attribut wie das anhängen, müssen Sie eigentlich nicht $(document).ready() verwenden.

Im Allgemeinen ist es jedoch besser, das onclick-Attribut nicht zu verwenden und den Listener in Javascript anzuhängen, etwa so:

<input type = "button" class = "showPopup" id = "testDiv" value = "Click Me!" />

$(document).ready(function(){
  $("input.showPopup").click(function(){
    showWindow($(this).id);
  }

  function showWindow(id){...}
}

Sie können das Javascript in den Kopf des Dokuments setzen, wie ~ricebowl sagte.

0voto

Dave Swersky Punkte 34052

Die "richtige" technische Antwort variiert je nach Framework (PHP, ASP.NET usw.). Wenn Sie diese Funktion in Ihrer gesamten Anwendung verwenden möchten, können Sie ein Skript-Tag verwenden:

<script type="javascript" src="somefile.js" />

Dieser Tag kann in einen "Seitenkopf-Include" aufgenommen werden, der auf die beste Weise implementiert wird. In ASP.NET würde ich diesen Tag zum Beispiel in die Master-Seite einfügen.

0voto

Raja Punkte 3570

Sie müssen das tun: Teilen Sie die Funktion in zwei Teile:

MakeDialog(divID) //auf diese Weise bereiten Sie das div als Dialog vor und ShowDialog(divID) //hier zeigen Sie den Dialog an

//document load
$(document).ready(function(){
     MakeDialog(divId);//prepa
});

function makeDialog(divID)
{
    var dialogDiv = $(divID);

    dialogDiv.dialog
    (
        {
            bgiframe: true,
            modal: true,
            autoOpen: false,
            show: 'blind'
        }
    )   
}

function showWindow(divId)
{
 dialogDiv.dialog("open");
}

HTH

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X