我怎樣才能通過$(本)對象,看起來像這樣
$('#selected').click(dosomething)
如果DoSomething的是功能的功能。我試圖做這樣的事情......
$('#selected').click(dosomething($(this)))
但好像我做了錯誤的方式...
我怎樣才能通過$(本)對象,看起來像這樣
$('#selected').click(dosomething)
如果DoSomething的是功能的功能。我試圖做這樣的事情......
$('#selected').click(dosomething($(this)))
但好像我做了錯誤的方式...
如果dosomething
接受作爲參數,一個jQuery對象,那麼你可以這樣做:
$('#selected').click(function(){
dosomething($(this))
});
是的,我想'dosomething'接受一個jquery對象參數,在這種情況下'$('#selected')'。關於代碼,是我可以傳遞'$(this)'的唯一方法嗎?將$(this)傳遞給'$('#selected')。click(dosomething)'格式是不可能的?感謝你的回答! –
在事件處理函數中,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的文檔的詳細信息,在「事件」參數
取決於你正在努力acomplish什麼:
這將是堅實的,會給你這外面的:
$this = $(this);
$('#selected').click(function(){
dosomething($this);
})
這是suffcient,如果你想通過這個意思「#selected」元素:
$('#selected').click(function(){
dosomething($(this));
})
或者你也可以做到這一點在「#selected」元素的上下文中運行的DoSomething:
$('#selected').click(function(){
dosomething.call(this);
})
最後將允許在dosomething
函數內使用this
這將意味着「#selected」元素。
你可能想提一下,他可以執行'var currentThis = $(this);'然後使用保存的'this'值。 –
在這種情況下'$(this)'是指什麼? (並且不,你不能通過這種方式。) –
在點擊事件處理程序中,'this'是被點擊的DOM元素。 –
@LeeMeador對,但他不在點擊事件處理程序中。我的猜測是他在另一個事件中綁定了這個點擊事件處理程序,這可能是一個不好的主意。 –