Tôi nhận được kết quả không mong muốn với jQuery đang cố gắng đặt phương thức "nhấp" của div. Vui lòng xem this jsfiddle. Đảm bảo mở cửa sổ bảng điều khiển. Nhấp vào từ vài lần và xem đầu ra của bàn điều khiển. Hàm click được gọi nhiều lần khi nó chỉ được gọi một lần.jquery .click được gọi nhiều lần
Mã nhận xét ở cuối hoạt động tốt. Tôi có làm điều gì sai? Tôi mới sử dụng jQuery.
Dưới đây là các mã:
function toggleDiv(status)
{
console.log("toggleDiv(" + status + ")");
if (status) {
$("#test").html("Goodbye");
}
else {
$("#test").html("Hello");
}
$("#test").click(function() {
toggleDiv(!status);
});
// Non-jquery method works fine....
//document.getElementById("test").onclick = function() {
// toggleDiv(!status);
//}
}
Cập nhật: Dường như có rất nhiều cách để da mèo này. Vấn đề thực sự ở đây là tôi không hiểu rằng chức năng "click" của jQuery có ADDS một trình xử lý khác. Tôi nghĩ rằng nó thay thế trình xử lý hiện tại.
Cảm ơn. Tôi không quen thuộc với thuộc tính "trạng thái dữ liệu" nhưng nó phù hợp với nhu cầu của tôi. Tuy nhiên, lưu ý rằng để mã của bạn hoạt động như chuyển đổi, cần thêm "$ (this) .data ('status', true);" để tuyên bố khác. –
Nếu bạn chỉ muốn thay đổi văn bản đó, bạn nên xem xét câu trả lời của mình, bạn không cần phải sử dụng .data() tại tất cả – kannix
Tại sao bạn trộn $ ("# test") và $ (this)? – kannix