2011-11-30 56 views
0
工作

我有以下的模態對話框中點擊功能模態對話框不工作/探險家卻在Firefox

$("#foo").click(function(){$("#bar").dialog({ 

    width: 400, 
    modal: true, 
    resizable: false, 
    buttons:{ 
      "Save": function(){ 
         $.post('remote_foo.php', $('#waka').serialize(), function(data){ 
        $('#list').html(data);}) 
        $(this).dialog("close"); 
        $('.dial').val(''); 
        $('.url').val('http://'); 

        }, 


      "cancel": function(){ 
       $(this).dialog("close"); 
      } 
     }//end of buttons 
    }).('open');//end of jquery dialog 
})// end of click function 

它工作正常,在Firefox,但說實話,我不甚至覺得我的點擊功能,樹立正確的。

1)這是通過點擊打開對話框的正確方法。 2)是否有一個特定的原因,這將無法在Chrome/Internet Explorer中工作? (這是jQuery的UI)

回答

1

不,這不是你應該如何打開對話框。看看這個代替:

$(function() { 

$("#foo").click(function(){ 
    $("#bar").dialog('open'); 
}); 


$("#bar").dialog({ 
    autoOpen: false, 
    width: 400, 
    modal: true, 
    resizable: false, 
    buttons:{ 
      "Save": function(){ 
         $.post('remote_foo.php', $('#waka').serialize(), function(data){ 
        $('#list').html(data);}) 
        $(this).dialog("close"); 
        $('.dial').val(''); 
        $('.url').val('http://'); 

        }, 


      "cancel": function(){ 
       $(this).dialog("close"); 
      } 
     }//end of buttons 
    }); // end of dialogInit 


})// end of document ready 

基本上,你是每次點擊重新初始化你的對話框。相反,在文檔準備就緒後初始化一次,然後用您的點擊事件打開/關閉它。

只需調用一次DOM對象上的對話框設置調用即可爲各種jQuery UI相關任務準備該對象。一旦準備好了,你就可以使用.dialog('open')和.dialog('close'),並且每次配置都會一直存在。

1

您是否嘗試從對話框調用結束時刪除。('open')?這不應該是必需的(不知道它是否是有效的調用)來顯示對話框,並且可能是您的跨瀏覽器問題的根源。