[英]Firefox JS not running unless debugged
我有一段简单的代码,在IE和chrome中都可以正常工作,但除非经过调试,否则在firefox中不起作用。
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-1.7.1.js" > </script>
<script>
$(document).on("click", "#chb", function () {
log("triggered, disabled = " + chb.disabled)
});
$(document).on("click", "#go", go);
cnt = 0;
function log(msg) {
$("#log").append("<span>" + ++cnt + ". " + msg + "<br/></span>");
}
function go() {
if (chb.disabled) {
chb.disabled = null;
console.log("set to null");
}
else {
chb.disabled = true;
console.log("set to true");
}
fireEvent(chb, "click");
}
function fireEvent(element, event) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true); // event type,bubbling,cancelable
return !element.dispatchEvent(evt);
console.log("Event fired");
}
</script>
<style>
</style>
</head>
<body>
<input type="checkbox" id="chb">
<input type="button" id="go" value="Go">
<div id="log" />
</body>
</html>
似乎FF无法触发事件。 有人知道这可能是什么问题吗?
好的,所以如果有人偶然发现这个问题……那是一个错误。 在Firefox中的某个地方存在一个问题,即您刚输入完输入,按钮或再次启用任何功能后就无法模拟事件。 只需使用一个函数即可(例如,在这种情况下,将如下所示:
$(document).on("click", "#chb", logg);
function logg () {
log("triggered, disabled = " + chb.disabled)
}
/// some code here
function go() {
if (chb.disabled) {
chb.disabled = null;
console.log("set to null");
}
else {
chb.disabled = true;
console.log("set to true");
}
if(!chb.disabled)
logg()
}
希望它会有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.