【问题标题】:JQuery custom event in ASP.Net User ControlASP.Net 用户控件中的 JQuery 自定义事件
【发布时间】:2009-09-17 19:10:04
【问题描述】:

我有一个包含一些复选框的 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");       
             });
          });

当我单击其中一个复选框时,我从来没有看到我的警报。有人知道这里可能是什么问题吗?

【问题讨论】:

  • hfRemainingInstalls 是 P 标签之一的 Id 吗?
  • hfRemainingInstalls 是用户控件上的 asp 隐藏字段。我试图在 aspx 页面上使用 p 标签,但现在已将其更改为引用 hfRemainingInstalls,但仍然不起作用。

标签: c# asp.net jquery events


【解决方案1】:

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

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

如果找到元素,以下将提示“true”...

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

【讨论】:

    【解决方案2】:

    那么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");       
      });
    });
    

    【讨论】:

    • 我之前也是这么想的,刚才又试了一遍,还是没用。
    • 好的,有一些 html 来更好地理解如何帮助你?
    猜你喜欢
    • 2015-02-27
    • 1970-01-01
    • 2011-01-12
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    相关资源
    最近更新 更多