ASP.Net用户控件中的JQuery自定义事件

时间:2009-09-17 19:10:04

标签: c# asp.net jquery events

我有一个ASP.Net用户控件,其中包含一些复选框,我想在单击其中一个复选框时使用JQuery从用户控件引发事件。以下是我正在尝试引发事件的用户控件中的JQuery代码:

         $(document).ready(function() { 
            $(':checkbox').click(function(){
               $('#hfRemainingInstalls').trigger('CheckBoxClicked');
            });
         });

以下是包含aspx页面的JQuery代码,我正在尝试订阅该事件:

          $(document).ready(function() {
              $("p").bind('CheckBoxClicked', function(e) {    
                 alert("checkbox clicked");       
             });
          });

当我点击其中一个复选框时,我从未看到警报。有人知道这里可能出现什么问题吗?

2 个答案:

答案 0 :(得分:0)

Id标签P和Id hfRemainingInstalls

之间是否存在关系

1:解决方案

$(':checkbox').click(function(){
    $("p").trigger('CheckBoxClicked');
});

$(document).ready(function() {
  $("p").bind('CheckBoxClicked', function(e) {    
     alert("checkbox clicked");       
  });
});

2:解决方案

$(':checkbox').click(function(){
    $("#hfRemainingInstalls").trigger('CheckBoxClicked');
});

$(document).ready(function() {
  $("#hfRemainingInstalls").bind('CheckBoxClicked', function(e) {    
     alert("checkbox clicked");       
  });
});

答案 1 :(得分:0)

我确定你有身份证问题。驻留在容器元素(如UserControls和MasterPages)内部的ASP.NET控件在呈现时会在id属性前面添加一些垃圾以确保唯一性。它通常类似于“ctl01_01_YourID”那就是说,你应该使用jQuery endsWith选择器......

$('input[id$=hfRemainingInstalls]').trigger('CheckBoxClicked');

如果找到该元素,以下内容将提醒“true”

alert($('#hfRemainingInstalls').length > 0);