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()

选择器参数的类型应该是String而不是jQuery 对象。这就是错误的原因。

delegateon取代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 回答