我有一些标记,就像这样......
<div id="items">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
我想编写一些函数来使用jQuery来影响每个函数。有点像...
$(".item").click(function(i){
i.hide();
});
有人可以给我一个简短的解释如何使这项工作?我应该使用.each()?
答案 0 :(得分:2)
你可以这样做:)
$(".item").live('click',function(){
$(this).hide();
});
答案 1 :(得分:2)
(a)文档清楚说明事件处理程序的作用。
(b)与大多数jquery方法一样(并且所有异常都明确指出它们是异常),.click
将应用于jquery对象选择的集合的每个成员。所以,不,如果您希望每个人都安装与事件处理程序相同的功能,则不需要使用.each
。
(c)this
或event.currentTarget
(或在您的示例中,i.currentTarget
)是访问作为事件接收者的dom节点的方式。您示例中的i
将成为事件对象。
答案 2 :(得分:1)
它没有每个
也有效$(".item").click(function() {
$(this).hide();
});
答案 3 :(得分:0)
$('.item').each(function(index){
$(this).bind('click', function(){
$(this).hide();
//alert("hiding item nr: "+index);
});
});
答案 4 :(得分:0)
是的,您可以使用每个,如下所示:
$(".item").each(function(){
//Here, use $(this) to reference current element
$(this).hide();
});
.each()
将您传递给匹配选择器中每个元素的函数应用于this
当前元素。
它有可选参数和其他东西。您可以在此处了解详情:http://api.jquery.com/jQuery.each/
希望这会有所帮助。干杯
答案 5 :(得分:0)
这有希望做你想要的。如果有效,请告诉我们,希望有所帮助。
$(".item").each(function(){
$(this).click(function () {
$(this).hide();
});
});
答案 6 :(得分:-1)
您希望在处理函数中使用$(this)
而不是i
。处理程序的参数是event object,其中包含有关事件的信息(例如单击它的鼠标坐标以及其他内容)。可能i
中的某个位置是被点击的对象,但您可以使用this
更轻松地访问“点击的任何对象”。
您不必使用each
,因为jQuery会自动将处理程序绑定到查询".item"
匹配的每个元素。
$(".item").click(function(i){
$(this).hide();
});
修改:根据the documentation中的说明,在$(...)
周围添加了this
。 (出于某种原因,没有$,它对我有用,但显然你需要它。)