在JQuery中,如何将单击的元素传递给onclick事件上调用的方法
我在页面上有几行:
在我的Save()
方法中,我想操纵被单击以调用Save()
方法的div。 我如何通过它(我认为$(this)
),而不诉诸ID?
非常感谢!
删除save()
并使用click()
来捕获事件:
[ 查看输出 ]
或者,如果您坚持使用save()
这样的function:
Save
[ 查看输出 ]
EDIT(2015) :。on(’click’,function)
在事件处理程序内部, this
指的是单击的元素。 但是,在从事件处理程序调用的函数内部,即Save
, this
将引用window。
您可以在通过call
[MDN] (或apply
) Save
明确设置this
应该引用的内容:
onclick="Save.call(this, event || window.event);"
然后你可以在函数内使用它作为$(this)
:
function Save(event) { // `this` refers to the clicked element // `$(this)` is a jQuery object // `event` is the Event object };
但是当你使用jQuery时,你真的应该这样做
$('.save-button').click(Save);
绑定事件处理程序。 将标记与逻辑混合不是一种好的风格。 您应该将演示文稿与应用程序逻辑分开。
或者,如果您希望Save
接受元素作为参数,那么只需传递它:
onclick="Save(this);"
和jQuery:
$('.save-button').click(function() { Save(this); });
挺直的…
$('#myDiv').click(function(){ save($(this)); }) function save($obj){ $obj.css('border', '1px solid red'); }
只需将其称为: $(this)
在 您可以使用Save()
函数内部, this
指的是被单击的DOM元素。$(this)
将其转换为jQuery对象。
这默认是指window
,因此您需要将this
作为Save函数的参数传递:
function Save(div) { }
现在在Save中,你可以使用div
来引用被点击的div。
我对this
表现感到困惑。 这个链接帮助了我: http : //www.quirksmode.org/js/this.html