如何a_href = $(this).attr('href');
值傳遞函數爲全球a_href
,使a_href="home"
jQuery的使全局變量
7
A
回答
22
您的代碼看起來不錯,除了可能性,如果變量聲明是一個DOM讀取處理器中,那麼它不會是一個全局變量...這將是可變的封閉
jQuery(function(){
//here it is a closure variable
var a_href;
$('sth a').on('click', function(e){
a_href = $(this).attr('href');
console.log(a_href);
//output is "home"
e.preventDefault();
}
})
爲了使可變全球,一種解決方案是聲明變量在全局範圍
var a_href;
jQuery(function(){
$('sth a').on('click', function(e){
a_href = $(this).attr('href');
console.log(a_href);
//output is "home"
e.preventDefault();
}
})
另一個是給變量設置爲窗口對象
window.a_href = $(this).attr('href')
爲什麼控制檯打印的屬性undefined
您得到的輸出爲undefined
,因爲即使聲明瞭變量,用一個值lized它,點擊後a
元到那時變量的值將undefined
變量的值只設置。如果你不聲明變量就會拋出一個ReferenceError
+0
謝謝很多,會打勾:-) – olo
+0
我知道這是舊的,但男人這幫了我。謝謝 –
0
設置變量的窗口:
window.a_href = a_href;
1
您可以通過直接將其添加到全局對象避免全局變量的聲明:
(function(global) {
...
global.varName = someValue;
...
}(this));
這種方法的缺點是globa.varName將不存在,直到被執行的代碼行,但就是可以被輕鬆的工作。
您也可以考慮應用程序架構,其中這樣的全局變量共同給需要它們,或爲合適的訪問的數據存儲對象的屬性所有功能的封閉舉行。
相關問題
- 1. jQuery全局變量
- 2. 全局變量jquery
- 3. 全局變量,Jquery的
- 4. jQuery的全局變量
- 5. jquery中的全局變量
- 6. jQuery的全局變量使用
- 7. 如何使用jQuery的全局變量?
- 8. jQuery - 簡單全局變量
- 9. ajax全局變量與jquery
- 10. jQuery全局變量$ .post();
- 11. jQuery設置全局變量
- 12. jquery全局變量失敗
- 13. jquery更新全局變量
- 14. jquery回調不使用全局變量
- 15. 全局變量的使用
- 16. 局部變量的全局變量
- 17. java全局全局變量和用戶全局變量
- 18. 使用全局變量將全局變量遞歸到迭代
- 19. 全局變量
- 20. 全局變量。
- 21. 全局變量
- 22. 全局變量
- 23. 全局變量
- 24. 全局變量
- 25. 全局變量
- 26. 全局變量
- 27. 全局變量
- 28. 全局變量
- 29. 全局變量
- 30. 全局變量
是啊,這非常期待權。 – Ryan
它應該像你期望的那樣工作。 – PSL
唯一的問題是,如果'VAR a_href'是DOM準備好處理程序內...變量聲明玉米粥在全球空間或使用'window.a_href = $(本).attr(「href」屬性)' –