Có ai biết cách thực hiện một sự kiện JavaScript đơn giản onclick
cháy nếu quá trình nhấp vào phần tử gây ra sự kiện onchange để kích hoạt ở nơi khác trên trang không? Tôi đã tạo một trang rất đơn giản để chứng minh vấn đề này:sự kiện onclick không kích hoạt sau sự kiện onchange
<html>
<body>
<input type="text" name="test" id="test1" onchange="return change(event);" />
<a href="#" id="test2" onclick="return bang();">Bang</a>
<a href="#" id="test3" onclick="return boom();">Boom</a>
<script type="text/javascript">
function change(event) {
alert("Change");
return true;
}
function bang() {
alert("Bang!");
return true;
}
function boom() {
alert("Boom!");
return true;
}
</script>
</body>
</html>
Nếu bạn nhấp vào liên kết bang bạn nhận được Bang! cảnh báo. Boom cung cấp cho bạn thông báo Boom. Và nếu bạn nhập văn bản vào trường văn bản và tab, bạn sẽ nhận được thông báo Thay đổi. Tất cả tốt và tốt.
Tuy nhiên, nếu bạn nhập văn bản vào trường văn bản và, không tabbing hoặc nhấp vào bất kỳ thứ gì khác trước, hãy nhấp vào Bằng hoặc Bùng bạn sẽ nhận được thông báo Thay đổi và không có gì khác. Tôi hy vọng sẽ thấy cảnh báo Thay đổi theo sau là Bang hoặc Boom.
Điều gì đang xảy ra ở đây? Sự kiện thay đổi của tôi trả về true. Làm cách nào để đảm bảo rằng sự kiện nhấp chuột của tôi được kích hoạt?
Mẹo: tạo fiddle trên http://jsfiddle.net/ và chia sẻ tại đây. Điều này giúp mọi người dễ dàng thử nghiệm và trợ giúp hơn. –
Có lẽ bạn nên sử dụng addEventListener thay vì gán chúng thông qua html như một mẹo nhỏ. – Sir
Hãy thử với 'console.log' thay vì' alert'. – j08691