e.stopPropagation();在自定义功能中

时间:2014-09-23 10:35:04

标签: javascript jquery

说明:

以下代码可以正常工作

$("body").on("click","#grumpy",function(e){

// perform some thing

 e.stopPropagation();

});

但是如果我创建了一个自定义函数,并且我想要stopPropagation(),那它就不起作用了......例如

function myFunction()
{
   // do some work

 e.stopPropagation();
}

我的代码

echo '<div class="recent_notice_in_side shake" id = "notice_no_'.$notice_id.'" onclick = "notice_expand(this.id)">
// other divs...

</div>';

如何在我搜索Google的自定义函数中实现e.stopPropagation();,但无法在自定义函数中找到如何执行此操作。

2 个答案:

答案 0 :(得分:3)

您的命名函数需要使用参数e,就像匿名函数一样:

function myFunction(e) {
    // do some work
    e.stopPropagation();
}

$("body").on("click", "#grumpy", myFunction);

答案 1 :(得分:0)

您可以通过创建自己的点击事件并在实际点击事件中将“e”传递给您的函数来实现此目的。

var e = jQuery.Event( "click" );
 myFunction( e );

可以在jquery中处理已创建事件的使用。下面的代码演示了相同的内容:

$(function () {
      var myFunction = function (e) {
          e.stopPropagation();
      };
      $("input[type=button]").click(function () {
          var e = jQuery.Event("click");
          myFunction(e);
      });
HTML中的

<input type="button" value="Stop Propagation" />