单击以获取附加的html

Click for appended html

本文关键字:html 获取 单击      更新时间:2023-09-26

我有这样的html:

<a class="link">text</a>
<div class="items"></div>
(function($) {
  var link = $('.link');
  link.click(function(){
    alert('it works!');
  });
  $('.items').each(function() {
    var items = $(this),
        item = $('<div>something inside</div>');
    items.append(item);
    item.click(link.click());
  });
})(jQuery);

我正在尝试为附加的item绑定一个click事件。因此,当我们点击item时,应该会启动link

但是我从jQuery内部的某个地方得到了一个错误Uncaught TypeError: Object [object Object] has no method 'apply'

怎么了?

您需要一个event delegation到动态添加的元素:

items.on('click', item, function(){
     link.click();
});

试拉小提琴:http://jsfiddle.net/qQLLL/

也许你应该试试smth。像这样:

function myClick(){
  alert('it works!');
}
$(".link").click(myClick);
$('.items').each(function() {
  var items = $(this),
      item = $('<div>something inside</div>');
  items.append(item);
  item.click(myClick);
});

尝试事件委派

 items.on('click', item, function(){
    link.click();
 });

如果您想阅读更多关于事件委派

的信息,请访问该链接

尝试这个

(function($) {
    var handleClick = function() {
        alert('it works!');
    };
    $('.link').click(handleClick);
    $('<div>something inside</div>').appendTo('.items').click(handleClick);
})(jQuery);

您的错误是:

item.click(link.click);

应该是

item.click(function(){ link.click() });