在ASP.NET中,Jquery Toggle不支持fieldset-legend

时间:2013-07-04 10:54:43

标签: c# jquery asp.net

我有fieldset> Update Panel中的传奇。我在传奇上使用jquery切换,在第一页加载时,它工作正常。

内部更新面板,我有按钮,点击它部分回发发生&一个新的字段集>图例,将打开。

现在jquery切换在两个fieldset-legend上都不起作用。

代码:

   $('fieldset').delegate('legend.test', 'click', function (ev) { ev.preventDefault();  
   $(this).next("div.showhidefsl").slideToggle("fast"); 
   $(this).parent("fieldset").toggleClass("fieldsetborderToggle");
   $(this).toggleClass("active"); });

2 个答案:

答案 0 :(得分:0)

如果在使用异步回发后这不起作用:

  function pageLoad(){
    $('fieldset').delegate('legend.test', 'click', function (ev) { 
      ev.preventDefault(); 
      $(this).next("div.showhidefsl").slideToggle("fast"); 
      $(this).parent("fieldset").toggleClass("fieldsetborderToggle"); 
      $(this).toggleClass("active"); });
    }

另一个选择是使用异步事件:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function() {
$('fieldset').delegate('legend.test', 'click', function (ev) { 
          ev.preventDefault(); 
          $(this).next("div.showhidefsl").slideToggle("fast"); 
          $(this).parent("fieldset").toggleClass("fieldsetborderToggle"); 
          $(this).toggleClass("active"); });
    });

代替:

$(document).ready(function(){
//your code
});

答案 1 :(得分:0)

使用live()或on()事件注册您的代理。

$('fieldset').live('legend.test', 'click', function (ev) { 
  ev.preventDefault(); 
  $(this).next("div.showhidefsl").slideToggle("fast"); 
  $(this).parent("fieldset").toggleClass("fieldsetborderToggle"); 
  $(this).toggleClass("active"); });
}