Tôi đang sử dụng jQuery v.1.7.1 trong đó phương thức .live() dường như không còn được dùng nữa.Phương thức jQuery .live() vs .on() để thêm một sự kiện nhấp sau khi tải html động
Vấn đề tôi đang gặp là khi động tải html vào một yếu tố sử dụng:
$('#parent').load("http://...");
Nếu tôi cố gắng và thêm một sự kiện nhấp chuột sau đó nó không đăng ký sự kiện bằng cách sử dụng một trong các phương pháp:
$('#parent').click(function() ...);
hoặc
// according to documentation this should be used instead of .live()
$('#child').on('click', function() ...);
cách chính xác để đạt được fu này là gì nctionality? Nó chỉ có vẻ làm việc với .live() cho tôi, nhưng tôi không nên sử dụng phương pháp đó. Lưu ý rằng #child là phần tử được tải động.
Cảm ơn.
Tại sao bạn nói * "được cho là không được dùng nữa" *? Bạn không tin các tài liệu? –
Nó không được chấp nhận _supposedly_: nó _is_ không được chấp nhận. Nếu bạn nhìn vào [jQuery doco cho '.live()'] (http://api.jquery.com/live/), nó sẽ cho bạn biết cách viết lại các sử dụng hiện tại của '.live()' để sử dụng '.delegate() 'hoặc' .on() '(tùy thuộc vào việc bạn đang sử dụng phiên bản 1.7+ hay không). Lưu ý rằng mặc dù nếu bạn thêm một trình xử lý bằng '.click()' "sau đó" như bạn đề cập, tức là sau khi nạp động các phần tử, nó sẽ hoạt động - vấn đề duy nhất đang cố gắng gán với '.click() '_before_ tải các phần tử động. – nnnnnn
Tôi đã thay đổi từ ngữ thành 'rõ ràng' vì đó là những gì tôi muốn nói. Dù sao, bây giờ tôi hiểu rằng rõ ràng vì sự kiện .load() là không đồng bộ thì phần tử #child chỉ có thể được nhận ra một cách đáng tin cậy trong trình xử lý thành công, điều này có ý nghĩa. –