Vì vậy, tôi đang sử dụng điện thoại di động Jquery với thành công lớn ngoại trừ một vấn đề. Bây giờ mỗi khi trang nội dung động được điều hướng đến bởi người dùng bất kể nội dung nào hiển thị, luôn có nút ở phía dưới khi nhấp vào email nội dung đến địa chỉ được chỉ định; hoạt động tốt. Bây giờ, lần đầu tiên trang được tải, nhấp chuột sẽ kích hoạt sự kiện một lần. Trong lần truy cập thứ hai của nó bị bắn hai lần, thứ ba 3 lần, vv bạn có được điểm. Tôi đã quét lưới và thực hiện mọi sửa chữa mà tôi có thể gặp phải, chẳng hạn như sử dụng "pagecreate" thay vì "pageinit", ràng buộc, unbinding, xóa div, tắt bộ nhớ đệm trong DOM nhưng không có gì hoạt động. Thành công duy nhất tôi có là sử dụng .one()
khi nhấp chuột nhưng nó cần phải được kích hoạt nếu được nhấp lại. Đây là cấu trúc. Tôi phải .js
file tải mỗi này để bắt đầuDi động Jquery. Nhấp nhiều lần vào lần truy cập trang mới
$("#page").live("pageinit", function() {
Bây giờ tôi đã có chức năng email và các công cụ khác trong một tập tin, nhưng nó làm cho nó dễ dàng hơn để tách họ và tôi nghe nói nó không quan trọng. Bây giờ, đây là chức năng email gọi trong pageinit
$('.eb').live('click', function() {
var id = $('.eb').attr('id');
var to = $('#recipient').val();
var message = $('#email').html();
var atpos = to.indexOf("@");
var dotpos = to.lastIndexOf(".");
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= to.length) {
alert('Please enter a valid email address!');
return false;
}
if(to.length == 0) {
alert('Please enter a valid email address!');
return false;
}
$.mobile.showPageLoadingMsg();
$.post('./services/service.email.php', { id: id, to: to, message: message}, function(data) {
if(data.success == true) {
$.mobile.hidePageLoadingMsg();
alert('Your recipe has been sent!');
$('#recipient').val('');
return true;
}
if(data.success == false) {
if(data.fail == 1) {
alert('An error has occured sending your recipe. Try again soon!');
return false;
}
if(data.fail == 2) {
alert('Please enter a valid email address!');
}
}
}, 'json');
return false;
});
Tất cả mọi thứ hoạt động hoàn hảo, ngoại trừ việc sa thải gia tăng của .click
trên mỗi trang mới. Có ai có thể dẫn tôi đi đúng hướng không?
Quá trình này được để lại đằng sau tất cả các loại sự kiện ràng buộc không cần thiết (người dùng trang web của bạn nhận được càng nhiều, trình duyệt sẽ chậm hơn vì bạn chỉ tải trình xử lý sự kiện được ủy quyền nhiều hơn và nhiều hơn nữa. bong bóng lên DOM). Vấn đề của bạn là một cạm bẫy thường xuyên khi làm việc với nội dung động, bạn đã quá tự do với sự ràng buộc sự kiện của bạn. Bản sửa lỗi thực sự là ngừng sử dụng trình xử lý sự kiện được ủy quyền, nơi chúng không cần thiết. Tôi rất vui vì bạn đã tìm ra điều gì đó nhưng đây không phải là câu trả lời hay. – Jasper