0
我用jQuery打開和關閉了一些div。在函數中使用'this'的jQuery
代碼工作正常,直到我嘗試使用它作爲函數,其中,我認爲由於上下文/或作用域問題jQuery(this)
我一直使用作爲選擇器從函數執行時不起作用。
的功能是這樣的:
function open_close_sections() {
if(jQuery('.question').hasClass('open')) {
jQuery(this).removeClass('open');
jQuery(this).next().slideUp();
}
else
{
jQuery('.open').not(this).next().slideUp();
jQuery('.open').not(this).removeClass('open');
jQuery(this).addClass('open');
jQuery(this).next().slideDown();
}
}
,我試圖用
jQuery('.question').click(open_close_sections());
調用它你可以看到在此筆功能的代碼工作外: http://codepen.io/amort2000/pen/KVqaqr 和未能在此筆功能上工作: http://codepen.io/amort2000/pen/YwQNOQ
根據鏈接的愚蠢。 jQuery的'click'需要一個函數引用 - 而不是調用該函數的結果。刪除括號。 – Jamiec
這是如何重複這個問題? – lascort
你也可以使用bind來綁定上下文。另外''jQuery('。question')。click(open_close_sections());'應該是'jQuery('。question')。click(open_close_sections);' – Rajesh