2010-04-13 4 views
7

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

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

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

    dialogDiv.dialog("open"); 
} 

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

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

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

Antwort

4

Sie können es in die Javascript-Datei einfügen, wenn Sie möchten. Wenn Sie Listener mit dem onclick-Attribut verknüpfen, müssen Sie $ (document) .ready() nicht verwenden.

Allerdings ist es im Allgemeinen besser Form betrachtet nicht das Onclick-Attribut zu verwenden, und den Hörer in Javascript anhä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 JavaScript in den Kopf des PUT kann Dokument wie ~ ricebowl sagte.

+0

oh shi ** das stimmt, dann will ich nicht Onclick verwenden. Duh. – PositiveGuy

+0

Ich begrüße Ihren Vorschlag, Klassen zu verwenden, um die Eingabe zu identifizieren, anstatt meine eigene - naive und stupide - Methode. Guter Anruf! =) –

5

Setzen Sie die $(document).ready(...); im head der (x) HTML-Seite (oder, in der Tat, .php, ASPX, usw.) als normal, nur so lange, wie Sie sicherstellen, dass es nach der verknüpften script Datei kommt (zu laden Sie Ihre somefile.js) und, natürlich, den Link zu Ihrer 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> 


Herausgegeben zu beachten, dass ich das Gefühl, dass ich etwas offensichtlich in Ihrer Frage bin fehlt. Bitte kommentieren Sie, wenn ich vollkommen offensichtlich bin und Ihren Punkt vermisse ...

0

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

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

Den Tag kann in eines enthalten sein „Seitenkopf enthalten“, umgesetzt in welcher Weise auch immer am besten ist. In ASP.NET würde ich dieses Tag beispielsweise in die Masterseite aufnehmen.

0

Sie haben, dies zu tun: Teilen Sie die Funktion in zwei:

MakeDialog (DIVID) // diese Weise können Sie die div vorbereiten ein Dialog und Showdialog (DIVID) sein // dies ist, wo Sie den Dialog zeigen

//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

Verwandte Themen