Làm thế nào để vượt qua chức năng a_href = $(this).attr('href');
giá trị cho toàn cầu a_href
, hãy a_href="home"
jQuery làm biến toàn cầu
Trả lời
Mã của bạn trông tốt, ngoại trừ khả năng rằng nếu biến tuyên bố là bên trong một xử lý đọc dom sau đó nó sẽ không phải là một biến toàn cầu ... nó sẽ là một biến đóng cửa
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();
}
})
Để thực hiện các biến toàn cầu một giải pháp, là để khai báo biến trong phạm vi toàn cầu
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();
}
})
khác là để thiết lập các biến như là một thuộc tính của đối tượng cửa sổ
window.a_href = $(this).attr('href')
Tại sao giao diện điều khiển in ấn undefined
Bạn nhận được kết quả là undefined
bởi vì mặc dù biến được khai báo, bạn không phải là initia lized nó với một giá trị, giá trị của biến được thiết lập chỉ sau khi các yếu tố a
được nhấp cho đến thời điểm đó biến sẽ có giá trị undefined
. Nếu bạn không khai báo biến nó sẽ ném một ReferenceError
Cảm ơn một rất nhiều, sẽ đánh dấu nó :-) – olo
Tôi biết điều này là cũ, nhưng người đàn ông này đã giúp tôi ra ngoài. Cảm ơn –
đặt biến trên cửa sổ:
window.a_href = a_href;
Bạn có thể tránh khai báo biến toàn cục bằng cách thêm chúng trực tiếp đến đối tượng toàn cầu:
(function(global) {
...
global.varName = someValue;
...
}(this));
Một nhược điểm của phương pháp này là globa.varName sẽ không tồn tại cho đến khi dòng mã được thực hiện, nhưng có thể dễ dàng làm việc xung quanh. Bạn cũng có thể xem xét một kiến trúc ứng dụng trong đó các hình cầu như vậy được giữ trong một bao đóng chung cho tất cả các chức năng cần chúng, hoặc như các thuộc tính của một đối tượng lưu trữ dữ liệu thích hợp có thể truy cập.
- 1. biến toàn cầu trong requireJS
- 2. biến toàn cầu hoặc cục bộ trong một plugin jquery
- 3. Biến toàn cầu SSIS
- 4. Toàn cầu jQuery `.click()`
- 5. biến toàn cầu không có phạm vi toàn cầu
- 6. Biến toàn cầu trong Ember
- 7. Biến toàn cầu và MPI
- 8. toàn cầu biến nhanh Node.js
- 9. Chức năng jquery toàn cầu
- 10. Làm thế nào để làm cho biến javascript toàn cầu
- 11. Làm thế nào để có được giá trị của biến toàn cầu trong jquery?
- 12. Biến toàn cầu và đơn vị đọc
- 13. Sử dụng biến toàn cầu trong javascript
- 14. Symfony 2 + Twig toàn cầu biến
- 15. Tạo biến bản đồ toàn cầu
- 16. Biến toàn cầu theo phương pháp tĩnh
- 17. biến toàn cầu chậm lại đang
- 18. findViewById nhiều lần VS biến toàn cầu
- 19. Biến toàn cầu trong máy chủ Python
- 20. Ruby on Rails - Biến toàn cầu?
- 21. Function Không Thay đổi toàn cầu Biến
- 22. Đặt các Biến Toàn cầu trong VBA
- 23. Biến C# ASP.NET C# là toàn cầu?
- 24. Làm thế nào để tạo biến toàn cầu trong prolog
- 25. Biến toàn cầu trong Qt, làm thế nào?
- 26. Làm thế nào để tránh các biến toàn cầu
- 27. JavaScript: biến toàn cầu sau khi Ajax yêu cầu
- 28. biến toàn cầu "đếm" mơ hồ
- 29. Jinja2: biến cục bộ/toàn cầu
- 30. Biến toàn cầu Các lớp học Python
Vâng, có vẻ khá nhiều. – Ryan
Nó sẽ hoạt động như bạn mong đợi. – PSL
chỉ có vấn đề là nếu 'var a_href' là bên trong một xử lý sẵn sàng dom ... biến mush tuyên bố được trong không gian toàn cầu hoặc sử dụng' window.a_href = $ (this) .attr ('href') ' –