我怎样才能在一个专门来自$(this)的类前面,例如我只想在这个例子中实际点击的div前面加上......
<div>
<div class='target'></div>
</div>
<div>
<div class='target'></div>
</div>
$('div').click(function(){
$('<div>hello</div>').prependTo('.target');
});
答案 0 :(得分:3)
只挂钩相关的div,然后在处理程序中使用this
(但另见下文,我可以通过两种不同的方式阅读您的问题):
$('div.target').click(function(){
$('<div>hello</div>').prependTo(this);
});
在通过jQuery连接的事件处理程序中,this
引用您将处理程序挂钩到接收事件的特定DOM元素。有关详细信息,请参阅bind
或on
文档。
Live example(您最后还有}
和)
被撤消,导致语法错误。)
如果您的目标是在目标div前面的外部 div上的任意位置单击,则更像是这样:
$('div').click(function(){
// Look for "target" divs within this div
var target = $(this).find("div.target");
// Did we find any?
if (target[0]) {
// Yes, prepend to it/them
$('<div>hello</div>').prependTo(target);
// And stop the event
return false;
}
});
Live example我们再次使用this
,但这次我们使用它来查看事件div
是否已传播到div
与“目标”类。如果是这样,我们会在您的“hello”div前加上return false;
停止活动(您可以使用event.stopPropagation();
代替)。
答案 1 :(得分:1)
或者,您可以先选择它并在其前面加上,例如:
$('div.target').click(function(){
$(this).prepend('<div>hello</div>');
});
更新:您必须将点击添加到目标而不是所有div,否则您将有双重事件。
答案 2 :(得分:0)
$('div.target').click(function(){
$('<div>hello</div>').prependTo($(this));
});
关闭括号时出错。您已经)}
,它应该是})