如何将 $(this) 对象传递给看起来像这样的函数
$('#selected').click(dosomething)
dosomething 是功能。我试着做一些事情,比如......
$('#selected').click(dosomething($(this)))
但似乎我做错了...
如何将 $(this) 对象传递给看起来像这样的函数
$('#selected').click(dosomething)
dosomething 是功能。我试着做一些事情,比如......
$('#selected').click(dosomething($(this)))
但似乎我做错了...
如果dosomething
接受一个 jQuery 对象作为参数,那么你可以这样做:
$('#selected').click(function(){
dosomething($(this))
});
在事件处理程序中,jQuery 将分配this
给选定的元素。请注意,此时它不是 jQuery 对象,因此您需要使用$()
.
$('#selected').click(function(){
dosomething($(this));
});
你实际上并没有那么远。添加事件时,您已经在 $(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 文档以获取有关“事件”参数的更多信息
取决于您要完成的工作:
这将是坚实的,并会给你这个外部:
$this = $(this);
$('#selected').click(function(){
dosomething($this);
})
如果您想传递此含义“#selected”元素,这就足够了:
$('#selected').click(function(){
dosomething($(this));
})
或者您可以这样做以在“#selected”元素的上下文中运行 dosomething:
$('#selected').click(function(){
dosomething.call(this);
})
最后一个将允许使用this
内部dosomething
函数,这意味着“#selected”元素。