2

スライドアップをトリガーするリスト要素にクリックイベントをデリゲートするにはどうすればよいですか?

これが私の試みです:

http://jsfiddle.net/Sdh2G/

HTML

<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>

JS

$(document).delegate($("li"), "click", function() { $(this).slideUp(); console.log("click"); });

次のエラーがスローされます。Uncaught TypeError: Cannot use 'in' operator to search for 'display' in undefined

4

4 に答える 4

1

メソッドを使用すると、.on()イベントを委任するのは非常に簡単です。

http://jsfiddle.net/Sdh2G/1/

$(document).on("click","li", function() {
    $(this).slideUp();
    console.log("click");
});

http://api.jquery.com/on/

于 2013-07-16T23:28:12.760 に答える
0

試す:

$('li').click(function() {$(this).slideUp();});
于 2013-07-16T23:27:33.173 に答える
0
$(document).delegate($("li"), "click", function()
                        ^----   Supposed to be a string and not a jQuery object

察するに

$(document).delegate("li", "click", function()

セレクター引数は、 jQuery オブジェクトではなくString 型である必要があります。それがエラーの原因です。

また、現在ondelegateによって置き換えられていますversion 1.7.0

だからそれを

$(document).on("click", "li", function() {

デリゲート フィドル

フィドルで

于 2013-07-16T23:28:23.753 に答える
0

どうですか

$(document).on( "click", "li",function() { $(this).slideUp(); });

http://jsfiddle.net/Sdh2G/2/

于 2013-07-16T23:28:44.550 に答える