如何在jquery或javascript中设置函数调用的顺序或优先级?

问题描述 投票:2回答:1

我在jquery或javascript中遇到函数调用序列或优先级问题。

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

(a)onclick委托功能 (b)onclick绑定功能 (c)onclick点击功能 (d)onLlick inLine click功能。

我的问题是:我想在其他onclick函数之上调用委托onclick函数,意味着当click事件生成然后第一个调用应该是委托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事件调用某个函数或按钮单击或其他内容的链接。我想,当click事件生成我的特定函数时,应首先调用,它将发送ajax请求并更新数据库,特定链接上的特定点击事件或按钮是在特定页面上生成的。现在,在一个站点中可以有许多页面,在一个特定页面上可以有许多链接或按钮。我不想在现有代码中更改或修改。我只想要一个全局jquery或javascript函数来调用每个click事件并在任何默认的onclick操作发生之前跟踪事件。

jquery function
1个回答
0
投票

点击,Bind Delegate是订单,如果inLine click出现,则转到第一个。

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

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