2010-11-17 91 views
1

首先我的英文不太好。索裏。jQuery對話框只會打開一次

我的問題是,當頁面加載完成。我使用click函數第一個clik工作成功。但secon點擊不起作用。但我刷新頁面第一clik工作,第二不工作againg。當我刷新頁面代碼正在工作一次。 (注:我在新的jQuery)

$(document).ready(function() { 
    $('#silmesaji').hide(); 
    $(".delbutton").click(function() { 
     var element = $(this); 
     var silinecek_idi = element.attr("id"); 
     var info = 'id=' + silinecek_idi; 
     $("#silmesaji").dialog({ 
      modal: true, 
      title: 'Kategoriyi Silin!', 
      resizable: false, 
      'buttons': { 
       "Sil": function() { 
        $.ajax({ 
         type: "GET", 
         url: "forms/joker.asp", 
         data: info, 
         success: function() { } 
        }); 
        $("#silmesaji").dialog("close"); 
        element.parents(".siralagayri").animate({ 
         backgroundColor: "#f31e1f" 
        }, "fast").animate({ 
         opacity: "hide" 
        }, "slow"); 
       }, 
       "iptal": function() { 
        $("#silmesaji").dialog("close"); 
       } 
      } 
     }); 
    }); 

firts感謝答案。

但我想:當點擊確定按鈕。發送帖子並關閉對話框。它不能工作:(

$(".delbutton").click(function() { 
    var element = $(this); 
    var silinecek_idi = element.attr("id"); 
    var info = 'id=' + silinecek_idi; 
    $("#silmesaji").dialog('open'); 
}); 


$("#silmesaji").dialog({ 
    autoOpen: false, 
    modal: true, 
    buttons: { 
     "Ok": function() { 
      $.ajax({ 
       type: "GET", 
       url: "forms/joker.asp", 
       data: info, 
       success: function(){ 
        element.parents(".siralagayri") 
         .animate({ 
          backgroundColor: "#f31e1f" 
         }, "fast") 
         .animate({ 
          opacity: "hide" 
         }, "slow"); 
        $("#silmesaji").dialog("close"); return false(); 
       } 
      }); 
     }, 
     "Cancel": function() { 
      $(this).dialog("close"); 
     } 
    } 
}); 
+1

你的JSLint有4個錯誤。 – 2010-11-17 14:48:35

+2

我把代碼槽JSBeautifier爲了提高可讀性... – 2010-11-17 14:50:56

+1

你不只是討厭它的問題是「JQuery不工作」,當問題與JQuery不工作無關嗎?對於OP來說,有一個比自我描述問題更難以歸咎於用戶錯誤的JQuery。 – 2010-11-17 15:05:52

回答

1

當調用$("#silmesaji").dialog(...),爲"autoOpen"選項默認是true,所以你創建&顯示對話框。

但關閉它後,到$("#silmesaji").dialog(...)一個電話,不會重新創建對話框,所以它也不會「的AutoOpen」。

需要調用$("#silmesaji").dialog('open'),重新開啓/顯示對話框。

我總是這樣做:

  • ready函數中,我使用autoOpen:false創建對話框。 (注意:不是在點擊事件)
  • Click事件我叫$("#silmesaji").dialog('open');

我會試着改變你的代碼:

$(document).ready(function() { 
    $('#silmesaji').hide(); 
    $(".delbutton").click(function() { 
     var element = $(this); 
     var silinecek_idi = element.attr("id"); 
     var info = 'id=' + silinecek_idi; 
     $("#silmesaji").dialog('open'); 
    }); 

    $("#silmesaji").dialog({ 
     autoOpen: false; 
     modal: true, 
     /* Your code */ 
    }); 


}); 
相關問題