2011-12-28 36 views
10

tôi có nút được tạo động nên tôi cần sử dụng .live trên mã của tôi. Dưới đây là ví dụ:jquery trên không hoạt động nhưng trực tiếp không sử dụng thư viện 1.7.1

$('#send').live('click', function(){ 
..... 
..... code ..... 
..... 
}); 

Tôi đang sử dụng thư viện jQuery 1.7.1 và tôi muốn thay đổi nó để sử dụng. Nhưng nó không hoạt động. Tại sao điều này? Cú pháp có khác biệt không?

Tôi đã xem tài liệu và tôi dường như không làm gì sai. Tôi không nhớ rời khỏi nó như sống nhưng tôi muốn biết nếu tôi đang làm điều gì đó sai trái.

http://api.jquery.com/on/

+2

Bạn có gặp lỗi không? Chuyện gì xảy ra? Bạn có thể muốn đăng mã thực của mình. Bạn cũng có thể sử dụng Fiddler để xem bạn có gặp phải sự cố tải xuống hay không. – rboarman

Trả lời

19

Cú pháp có khác biệt không? Vâng. Bạn đã đọc tất cả trang doco .on() bạn đã liên kết chưa?

Bản tóm tắt sau đây về làm thế nào để chuyển đổi .live()-.delegate() hoặc .on() là từ .live() doco page:

$(selector).live(events, data, handler);    // jQuery 1.3+ 
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+ 
$(document).on(events, selector, data, handler);  // jQuery 1.7+ 

Vì vậy, trong trường hợp của bạn, bạn muốn:

$(document).on('click', '#send', function(){ 
    // your code here 
}); 

Lưu ý rằng mặc dù lý tưởng bạn thắng' t đang sử dụng $(document), bạn sẽ sử dụng $(someotherelement) để đính kèm trình xử lý vào phần tử gần hơn với phần tử '#send' của bạn. Nếu bạn có thể, hãy sử dụng bất kỳ phần tử cha mẹ trực tiếp nào của '#send' là hoặc nếu cha mẹ được tạo động quá sử dụng số phụ huynh của nó.

+1

Và điều tuyệt vời về '.on()' (hoặc '.delegate()') là bạn có thể thay đổi 'document' thành bất kỳ' 'nào bạn muốn. – Jasper

+0

vâng tôi chỉ không hiểu rằng bạn đã phải sử dụng hai bộ chọn như Slaks –

+0

ví dụ nếu nó bên trong một hình thức nó coud được như $ ('$ customForm'). ('Click', '#send', chức năng () {})? –

6

Để sử dụng đoàn sự kiện, .on đòi hỏi hai selectors, như .delegate.

$('some container').on('click', '#send', function() { ... }); 
Các vấn đề liên quan