我有一个函数,可以在使用滑块时更改文本框的值。它传递一个事件变量,该变量具有要更新为值的文本框:
function updateTextBox(e){
$(e.data.textbox).val($(this).slider('option','value')); //this line works great
$(e.data.textbox).change(); //this line works fine in Chrome, but not IE.
}
绑定我传递的函数(简化):
slinder.bind('slide', {textbox : '#idOftextbox'}, updateTextBox);
IE仅使用第一行自动执行更改事件,但在第二行“对象不支持此对象或方法”时抛出错误。但是,Chrome不会通过设置值自动触发更改事件,因此需要第二行。任何想法如何解决这个问题而不诉诸用户代理检测。
警报(e.data.textbox.change); //给出了所有浏览器中函数的定义,但是不喜欢添加括号。
我甚至没试过eval(e.data.textbox.change)......
请注意。我对滑块的工作方式感到满意,所以我不想替换它。该事件如何被“冒泡”到文本框中。
答案 0 :(得分:0)
这是因为我有两个绑定到滑块的事件,我认为这是不可能的,因为我认为这是不相关的。
slider.bind( '滑动',.... slider.bind( 'slidechange',...
当我摆脱e.textbox.change()行时,不确定为什么错误会消失,但是通过删除第二个侦听器来解决它