Javascript 未捕获的TypeError:对象不是函数(调用onchange函数)
我的代码很大,所以我会保持简短。我想在选择阿曲布他后立即开火。问题是,当我发射它时,我得到了以下错误:Javascript 未捕获的TypeError:对象不是函数(调用onchange函数),javascript,jquery,html,Javascript,Jquery,Html,我的代码很大,所以我会保持简短。我想在选择阿曲布他后立即开火。问题是,当我发射它时,我得到了以下错误: Uncaught TypeError: object is not a function 因为我的代码很大,所以我将向您展示我在哪里以及何时触发该事件的代码 以下是声明onchange函数的时间: function e(b, c) { function a() { if (b.current_modal) { b.cu
Uncaught TypeError: object is not a function
因为我的代码很大,所以我将向您展示我在哪里以及何时触发该事件的代码
以下是声明onchange函数的时间:
function e(b, c) {
function a() {
if (b.current_modal) {
b.current_modal.className = "hide"
}
f("overlay").className = "hide"
}
jigsaw.UI.close_lightbox = a;
Util.$("overlay").click(a);
Util.$("set-parts").change(function () {
if (this.parts != 9) {
jsaw.set_image("images/puzzle.jpeg")
} else {
jsaw.set_image("images/puzzle1.jpeg")
}
c.emit(jigsaw.Events.PARTS_NUMBER_CHANGED, +this.value);
c.emit(jigsaw.Events.RENDER_REQUEST)
});
Util.$("game-options").click("a", function (h) {
if (jigsaw.Events[this.id]) {
h.preventDefault();
c.emit(jigsaw.Events[this.id])
}
})
}
以下是我触发onchange事件的时间:
show_time: function () {
/*.....*/
javascript: document.getElementById("date").innerHTML = ScoreResult;
document.getElementById("set-parts").selectedIndex = 1;
document.getElementById('set-parts').onchange();
}
我不使用jquery,但在JavaScript中,addEventListener(eventName,…)和*eventName*=function(){}的工作方式有所不同 我想不是现代的库会在*eventName*接口上使用,原因很简单:我只能容纳一个侦听器。但是on*eventName*仍然支持遗留代码 现在,在您的特定情况下,当您添加事件时,您的库正在使用addEventListener/removeEventListener/dispatchEvent underline DOM接口。这不会将遗留的on*eventName*属性设置为回调,因此您可以通过使用DOM方法dispatchEvent(或您的库包装器)和类型为“change”的事件对象调度事件来直接调用它。这就是“新事件(‘更改’)”所做的。如果需要向事件传递额外属性,可以按如下方式创建:
new Event('change', { foo : 1, bar : 'hello, world!' })
并且这些属性将在侦听器回调参数[0]中可用,无论您使用哪个名称设置参数(在您的情况下,将其保留为空)。@Joe document.getElementById('set-parts').onchange();如果您有jQuery,为什么要使用vanilla DOM?我尝试使用JavaScript触发onchange事件。当我在网站(HTML)上更改select atribute时,OnChange函数起作用,但当我想使用JavaScript强制OnChange事件时,我得到了一个错误@JoeI尝试了@Joe,但没有触发任何事件…尝试调用OnChange如下:document.getElementById('set-parts').dispatchEvent(新事件('change');如果ti有效,我会给你一个完整的答案