如何将$(this)对象传递给看起来像这样的函数
$('#selected').click(dosomething)
dosomething是什么功能。我尝试过做......
$('#selected').click(dosomething($(this)))
但似乎我做错了......
答案 0 :(得分:5)
如果dosomething
接受jQuery对象作为参数,那么你可以这样做:
$('#selected').click(function(){
dosomething($(this))
});
答案 1 :(得分:1)
在事件处理程序中,jQuery会将this
分配给所选元素。请注意,此时它不是jQuery对象,因此您需要使用$()
包装它。
$('#selected').click(function(){
dosomething($(this));
});
答案 2 :(得分:0)
你实际上并不是那么远。添加事件时,您已处于$(this)范围内。所以你要做的就是:
$('#selected').click(function() {
// $(this) is the same as $('#selected')
});
让我们说你想要一个像这样的“外部”功能:
function click_trigger(e) {
// e for EVENT
var $this = $(e.target) // The targeted selector ($('#selected'))
// OR
var $this = $(e.currentTarget) // The current clicked item (which might have "bubbled" to #selected)
}
$('#selected').click(click_trigger);
您可以查看jquery文档以获取有关“event”参数
的更多信息答案 3 :(得分:0)
取决于你想要实现的目标:
这将是坚实的,并将给你外面的这个:
$this = $(this);
$('#selected').click(function(){
dosomething($this);
})
如果你想传递“#selected”元素的意思,那就足够了:
$('#selected').click(function(){
dosomething($(this));
})
或者你可以在“#selected”元素的上下文中运行dosomething:
$('#selected').click(function(){
dosomething.call(this);
})
最后一个允许在this
函数中使用dosomething
,这意味着“#selected”元素。