我有这样的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);
我正在尝试为附加的click
绑定item
个事件。因此,当我们点击item
时,应启动link
。
但是我从jQuery里面的某处得到了一个错误Uncaught TypeError: Object [object Object] has no method 'apply'
。
怎么了?
答案 0 :(得分:3)
动态添加的元素需要event delegation
:
items.on('click', item, function(){
link.click();
});
答案 1 :(得分:1)
也许你应该试试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);
});
答案 2 :(得分:1)
答案 3 :(得分:1)
试试这个
(function($) {
var handleClick = function() {
alert('it works!');
};
$('.link').click(handleClick);
$('<div>something inside</div>').appendTo('.items').click(handleClick);
})(jQuery);
答案 4 :(得分:0)
你的错误是:
item.click(link.click);
应该是
item.click(function(){ link.click() });