2011-10-11 95 views
2

我有jQuery或JavaScript中的函数调用序列或优先级的问题。如何在jquery或javascript中设置函数调用的顺序或优先级?

假设我在onclick事件上编写了不同的函数,您可以在下面给出的代码中看到我在onclick事件上有不同的函数。像

的(a)的onclick委托功能
(b)中的onclick bind函数
(c)中的onclick 点击功能
(d)的onclick INLINE点击功能。

我的问题是:我想调用其他onclick函数顶部的委托onclick函数,意思是当单击事件生成时,第一次调用应委托onclick函数而不是其他函数。有inLine onclick函数默认情况下首先调用,我不想要。

<html> 
    <head> 
     <script type="text/javascript" src="jquery.js"></script> 
     <script type="text/javascript"> 

      $(function(){     
       $("body").delegate(".track", "click", function(){      
        alert("Delegate called"); 

       }); 

       $("a.track").click(function(){ 
         alert("Click function called"); 
       }); 

       $(".track").bind("click", function(){ 
        alert("Bind click called"); 
       }); 


      }); 



     </script> 
    </head> 

    <body> 

     <table border="0"> 
      <tr> 
       <td> 
        <p class="track">Click Me </p> 
        <input type="button" class="track" value="click me" /> 
        <a href="http://google.com" class="track" onclick="javascript:alert('in Line on click called');">Go Google</a> 
        <br /> 
        <a href="http://yahoo.com" class="track">Go Yahoo</a> 
        <br /> 
        <a href="http://gaadi.com" class="track">Go Gaadi</a> 
        <br /> 
       </td> 
      </tr> 
     </table> 
    </body> 
</html> 

谢谢您的回答。
我的问题是,我想跟踪特定网页上的每个点击事件。假设有一个内联或外部onclick事件调用某个函数或点击按钮或其他东西的链接。我希望,当点击事件产生我的特定功能时,应首先调用它,将发送ajax请求并更新数据库,在特定页面上生成特定链接或按钮上的特定点击事件。现在,在一个网站中可以有许多页面,并且在一个特定页面上可以有许多链接或按钮。我不想在现有代码中进行更改或修改。我只想要一个全局jQuery或JavaScript函数,它调用每个点击事件并在任何默认的onclick动作发生之前跟踪事件。

+1

我想不出任何问题,结合多个点击处理程序可以解决重组代码解决不了更好的。或者以问题的形式:你为什么需要这样做? –

+0

格雷格说的+1。考虑重构你的代码。 jQuery绑定事件的功能有一个可定义的模式,但是你不应该依赖这个模式。 – Anurag

回答

0

单击,绑定代表是订单,如果inLine点击,它会先到达。

如果顺序很重要,您可以创建自己的事件并绑定回调以在其他回调触发这些事件时触发。

$('a.track').click(function(e) { 
    // maniplate a.track ... 
    $('a.track').trigger('a.track-manipulated'); 
}); 

$('a.track').bind('a.track-manipulated', function(e) { 
    // do more stuff now that a.track has been manipulated 
    return; 
}); 

和更多信息,请看看这个,http://www.bennadel.com/blog/1525-jQuery-s-Event-Triggering-Order-Of-Default-Behavior-And-triggerHandler-.htm