jQuery之call()方法的使用

最近在作項目時候,寫了幾行關於DOM操做的代碼,在方法中使用了this,在後期重構的時候,想將這段分離出來作成一個方法。javascript

最開始想的很簡單,就直接分離出來使用方法名稱調用便可。css

可是實際操做的時候沒有效果,通過檢查發現,出錯的地方是由於方法中有this。此時的this,已經不是原來的觸發事件的對象了,在使用Intellij進行重構,其使用到了一個方法 method.call(this)進行調用。java

百度後發現:ide

如上文描述同樣: 函數

thisObj: 指定函數執行的時候,函數內部的this指針就是傳入的這個。 arg1:從頭至尾的參數。

相關代碼以下:this

function slide2() { var moveNode = $(this).next("ul.level2:eq(0)"); var classNode = $(this).children(".arrow:eq(0)") if (moveNode.css("display") === "none") { moveNode.slideDown(300); classNode.removeClass("close").addClass("open"); } else { moveNode.slideUp(300); classNode.removeClass("open").addClass("close"); } }

調用的時候能夠使用spa

$(".level1>div").click(function () { slide2.call(this); return false; });

 

參考連接:http://www.365mini.com/page/javascript-function-call.htm指針

相關文章
相關標籤/搜索