【问题标题】:JQuery event in javascript objectjavascript对象中的JQuery事件
【发布时间】:2023-03-17 19:20:01
【问题描述】:

我有一个 javascript 对象

function A()
{
    this.ini = function()
    {
        $('#test').html('<button id="click" >Hi</button>');
    }    

    $('#click').on('click',function(){
        alert('Hi');
    });
}

http://jsfiddle.net/G2MUE/1/

但是我有一个问题,onClick这个事件没有用到。

感谢您的帮助

【问题讨论】:

标签: javascript jquery


【解决方案1】:

试试这个

$(document.body).on('click', "#click" ,function(){
    alert('Hi');
});

您在元素位于 DOM 之前附加处理程序。

【讨论】:

    【解决方案2】:
    function A()
    {
        this.ini = function()
        {
            $('#test').html('<button id="click" >Hi</button>');
        }    
    
        $(document).on('click', '#click', function(){
            alert('Hi');
        });
    }
    

    http://jsfiddle.net/G2MUE/7/

    【讨论】:

      【解决方案3】:

      你不需要把它放在初始化中。试试吧

      function A()
      {    
          $('#test').html('<button id="click" >Hi</button>');             
          $('#click').on('click',function(){
             alert('Hi');
          });
      }
      A();
      

      看到这个DEMO

      【讨论】:

      • 为什么要关闭它..??任何理由
      【解决方案4】:

      您正在尝试将处理程序绑定到不存在的元素。试试这样的:

      http://jsfiddle.net/pdT24/

      function A() {
          this.ini = function () {
              $('<button id="click" >Hi</button>')
                  .click(clickfn)
                  .appendTo('#test');
      
          }
      
          var clickfn = function (e) {
              alert('Hi');
          };
      }
      var a = new A();
      a.ini();
      

      另一种方法是使用on() 进行事件委托:

      $('#test').on('click', '#click', function() { ... });
      

      【讨论】:

        猜你喜欢
        • 2010-10-31
        • 2018-11-15
        • 1970-01-01
        • 2012-07-10
        • 1970-01-01
        • 2017-01-17
        • 2011-09-21
        • 1970-01-01
        • 2011-03-12
        相关资源
        最近更新 更多