1

私はこのような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。したがって、をクリックするとitemlinkが起動するはずです。

しかしUncaught TypeError: Object [object Object] has no method 'apply'、jQuery内のどこかからエラーが発生します。

どうしたの?

4

5 に答える 5

3

event delegation動的に追加された要素には次のものが必要です。

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

フィドルを試してみてください: http://jsfiddle.net/qQLLL/

于 2013-02-18T08:34:04.503 に答える
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);
});
于 2013-02-18T08:37:38.747 に答える
1

イベント委任を試す

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

イベント委任について詳しく知りたい場合 は、リンクをたどってください

于 2013-02-18T08:40:06.610 に答える
1

これを試して

(function($) {
    var handleClick = function() {
        alert('it works!');
    };
    $('.link').click(handleClick);
    $('<div>something inside</div>').appendTo('.items').click(handleClick);
})(jQuery);
于 2013-02-18T08:42:53.483 に答える
0

あなたのバグは:

item.click(link.click);

する必要があります

item.click(function(){ link.click() });
于 2013-02-18T08:39:42.227 に答える