Giả sử tôi có một kịch bản mà tôi có một plugin toàn cầu (hoặc ít nhất là một plugin liên kết với một mảng rộng hơn các sự kiện).jquery .live() sự kiện tương tác
Plugin này có công cụ chọn và liên kết nhấp chuột trực tiếp với plugin đó. Một cái gì đó trong pseudo-jquery rằng có thể trông như thế này:
$.fn.changeSomething = function(){
$(this).live("change", function(){ alert("yo");});
}
Trên trang khác, tôi có thêm một cái gì đó ràng buộc sống như thế này:
$("input[type='checkbox']").live("click", function(){alert("ho");});
Trong kịch bản này, các hộp kiểm sẽ lý tưởng kết thúc được ràng buộc với cả hai sự kiện trực tiếp.
Điều tôi thấy là sự kiện thay đổi sẽ kích hoạt như nó cần và tôi được cảnh báo "yo". Tuy nhiên, bằng cách sử dụng sự kiện nhấp chuột trực tiếp này, tôi không bao giờ kích hoạt sự kiện đó. Tuy nhiên, bằng cách sử dụng một ràng buộc nhấp chuột rõ ràng, tôi DO nhấn nó.
Cách giải quyết dễ dàng là kích hoạt sự kiện nhấp chuột ở cuối trình xử lý thay đổi trực tiếp, nhưng điều này có vẻ khó xử với tôi. Bất kỳ ý tưởng?
Lưu ý rằng đây là sử dụng jquery 1.4.2 và chỉ xảy ra trong IE8 (tôi cho là 6/7 cũng vậy, nhưng tôi chưa thử nghiệm chúng).
một ví dụ (bạn sẽ cần jquery-1.4.2.min.js):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$.fn.changeSomething = function(){
var t = $(this);
t.live("change", function(){
alert("yo");
});
};
$(document).ready(function(){
$("input[type='checkbox']").changeSomething();
$("#special").live("click", function(){
alert("ho");
});
});
</script>
</head>
<body>
<form>
<input type="checkbox" id="cbx" />
<input type="checkbox" id="special" />
</form>
</body>
</html>
Bạn có thể gửi mã xung quanh ví dụ không làm việc? ví dụ. là nó được bọc trong một sẵn sàng chưa? –
Chắc chắn, hãy xem chỉnh sửa gần đây nhất của tôi. Ví dụ khá đơn giản, nhưng về cơ bản là dòng chảy. – ddango
Tôi nhận được cả hai bắn ở đây mỗi lần, sự thay đổi cháy sau đó nhấp vào ... bạn đang sử dụng trình duyệt nào đang gặp sự cố? –