2012-07-20 59 views
0

我正在使用jQuery對話框。我希望能夠將腳本用於單個對話框,以便用於多種用途。爲此,我正在考慮分配一些可以在對話框中調用的回調函數。這是一個合適的方式嗎?當點擊對話框按鈕時,我需要做些什麼才能使下面的代碼警告「嗨」?謝謝在對話框中使用回調函數

function somefunction() {alert('hi');} 

$("#clickme").click(function(){$("#dialog").data('callback',somefunction).dialog("open");}); 

$("#dialog").dialog({ 
    buttons: [ 
    { 
     text : 'Click', 
     click : function() { 
      //If $(this).data('callback') is defined, then execute the function 
     } 
    }] 
}); 

回答

0

有幾種不同的方式來做到這一點(所有文件中顯示)。

這裏有一種方法(簡單的在我看來):

$("#dialog").dialog({ 
    buttons: { 
     "Click": function() { 
      alert("Hi"); 
      // execute callback if it is defined 
      if (callback) callback(); 
     } 
    } 
}); 
+0

我使用在多個頁面此相同的對話框。我想要一致的外觀(可調整大小:false,height:300,width:440,modal:true,dialogClass:'hide-title-bar'等),並且需要相同的打開函數()。我不想在每個頁面上重複此操作,並且想要使用相同的對話框,但以不同的方式應用它。有時button()可能會提醒('hi'),有時候它可能會修改某些DOM。因此,我希望它執行callback()函數,其中我將包含所需的任何腳本。 – user1032531 2012-07-20 19:22:57

+0

那麼....包含回調函數而不是匿名函數?我不明白。 – 2012-07-20 19:29:17

+0

對不起,我不清楚。我的匿名函數中有一些其他代碼,這對所有頁面都是通用的。我想執行該代碼,然後如果定義了回調函數,請執行其代碼。 – user1032531 2012-07-20 19:48:01

相關問題