运行onchange事件而不首先关注文本框

时间:2014-01-02 02:25:46

标签: javascript events listener

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。

0 个答案:

没有答案