jQuery触发器无法在IE中运行。为什么?

时间:2010-10-14 22:51:06

标签: javascript jquery internet-explorer-7 triggers

$('#XynBp0').find('input').each(function(){
    if ($(this).attr('value') == 'Cancel'){
        $(this).trigger('click');
    }
});

在IE7中不起作用

4 个答案:

答案 0 :(得分:2)

这很奇怪,但尝试创建自定义事件

$('#XynBp0 input').bind('custom',function(){
 //code
})


$('#XynBp0').find('input').each(function(){
    if ($(this).attr('value') == 'Cancel'){
        $(this).trigger('custom');
    }
});

这有用吗?

答案 1 :(得分:2)

$.click()(或$.trigger('click'))不会模拟鼠标点击;它会触发绑定到该元素的任何 onclick 事件。如果您尚未为要搜索的输入分配 onclick 事件,则不会发生任何事情。

听起来您正尝试使用传统的提交按钮(例如<input type="submit" value="Cancel">)提交表单。如果是这种情况,您可能必须使用$(yourform).submit()提交表单,并结合对发送到服务器的数据的一些处理来模拟单击“取消”按钮。

答案 2 :(得分:0)

它是否包含在dom ready事件中?如果您提供更多代码,可能会有所帮助。

$(function () {

    $('#XynBp0').find('input').each(function () {
        if ($(this).attr('value') == 'Cancel') {
            $(this).trigger('click');
        }
    });

});

答案 3 :(得分:0)

您的代码snippit没有任何意义,如果取消它们,您点击输入?

这里有一些要清理的代码

$('input','#XynBp0').each(function () {
  var $this = $(this);
  if ( this.value === 'Cancel' ) { //Don't need jQuery here
    $this.trigger('click');  //Probably don't need it here either
  }
});

点击甚至做什么?如果您要提交表单,请使用form.submit();