是否可以在.trigger()函数上使用.stopPropagation()?

时间:2016-06-15 11:26:06

标签: javascript jquery

如何将.trigger() - 事件与.stopPropagation()一起使用?我需要在不触发提交事件的情况下模拟提交事件。

$('.form .submit').trigger('click', function (e) {
    e.stopPropagation();
});

不起作用。有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:0)

你能说出你的提交活动会发生什么吗? 到现在为止我会这样说:

// add trigger for submit event
$( ".form" ).on( "submit", function( e, prevent ) {
    if ( prevent ) {
        // stop propagation if second argument named prevent was committed
        e.stopPropagation();
    }
} );
// trigger Event "submit"
// use $.Event to ensure that the native submit event of the form will be called
// set a second parameter as list with the first index true to set this as second argument in the eventHandler
// third argument would be the second index in the array
$( ".form" ).trigger( $.Event( "submit" ), [ true ] );

答案 1 :(得分:0)

您正在寻找triggerHandler()方法:

$('.form .submit').triggerHandler('click');
  

.triggerHandler(“event”)方法不会调用.event()   它被触发的元素。这意味着.triggerHandler(“提交”)   表单不会在表单上调用.submit()。

更具体针对您的情况:

  

使用.triggerHandler()触发的事件不会冒泡DOM   层次结构;如果它们不是直接由目标元素处理的,   他们什么都不做。