onchange事件有其他替代方案吗?我的代码中有事件监听器,如下所示:
if ($(prefix+"scale").addEventListener || $(prefix+"scaleFilter_btn").addEventListener)
{
$(prefix+"scale").addEventListener('onchange', MapPrintDialog.DrawPrintAreaFrame.createCallback("edit", true), false);
$(prefix+"scaleFilter_btn").addEventListener('onclick', MapPrintDialog.DrawPrintAreaFrame.createCallback("edit", true), false);
$(prefix+"xj").addEventListener('onchange', MapPrintDialog.DrawPrintAreaFrame.createCallback("edit", true), false);
$(prefix+"yj").addEventListener('onchange', MapPrintDialog.DrawPrintAreaFrame.createCallback("edit", true), false);
}
else if($(prefix+"scale").attachEvent || $(prefix+"scaleFilter_btn").attachEvent)
{
$(prefix+"scale").attachEvent("onchange", MapPrintDialog.DrawPrintAreaFrame.createCallback("edit", true));
$(prefix+"scaleFilter_btn").attachEvent("onclick", MapPrintDialog.DrawPrintAreaFrame.createCallback("edit", true));
$(prefix+"xj").attachEvent("onchange", MapPrintDialog.DrawPrintAreaFrame.createCallback("edit", true));
$(prefix+"yj").attachEvent("onchange", MapPrintDialog.DrawPrintAreaFrame.createCallback("edit", true));
}
但是,当您在文本框中手动输入值时,他们只会调用MapPrintDialog.DrawPrintAreaFrame.createCallback("edit", true)
。例如,如果我单击一个随机按钮或拖动某些内容,x和y坐标值将会改变,它将调用事件中的函数,因为值已更改。如何仅使用事件来执行此操作?顺便说一句,它必须与Firefox和Internet Explorer一起使用。到目前为止,我只使用了使用attachEvent的IE来尝试它。
提前谢谢你。祝大家新年快乐! :)
编辑:
我也尝试过$(prefix+"scaleFilter_btn").on("click", MapPrintDialog.DrawPrintAreaFrame.createCallback("edit",true));
但它给了我一个运行时错误,说对象不支持属性或方法'on'
有什么想法吗?
另一个编辑:
问题已得到解决。除非您使用JQuery
或手动调用onchange()
事件,否则无法解决此问题。谢谢StackOverflow。