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

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

问题描述:

说明:e.stopPropagation();在自定义功能

下面的代码工作,因为它应该

$("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>'; 

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

+2

'myFunction'应该有一个名为事件参数'e' – shakib 2014-09-23 10:36:33

+3

他们都将无法正常工作...'$( “身体” ).on(“click”,“#grumpy”,function(){'should be'$(“body”)。on(“click”,“#grumpy”,function(e){' – 2014-09-23 10:36:35

+0

我很抱歉是一个打字错误......但你能告诉我如何在自定义函数中做到这一点 – 2014-09-23 10:39:20

你命名的功能需要采取一个参数e,就像匿名函数:通过创建你的点击事件,并通过在“E”给你的函数在

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

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

或者(如果还需要运行一些其他代码),您将事件向前传递'$(“body”)on(“click”,“#grumpy”,function(e){ doSomethingElse(); ' – 2014-09-23 10:42:38

你可以这样做实际的点击事件。

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" /> 
+0

不能工作形式我 – 2014-09-23 11:09:04

+0

我做了一个编辑,其中一个按钮点击事件触发,实际上调用另一个方法,其中e通过,请检查,并让我知道,如果它现在工作 – 2014-09-23 12:05:59