2010-11-17 97 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 */ 
    }); 


}); 
相关问题