Как установить порядок или приоритет вызова функций в jquery или javascript? - PullRequest
2 голосов
/ 11 октября 2011

У меня проблема с последовательностью вызова функций или приоритетом в jquery или javascript.

Предположим, я пишу другую функцию для события onclick, как вы можете видеть в приведенном ниже коде, где у меня есть различные функции для события onclick.как

(a) функция делегата onclick (b) функция привязки по клику (c) функция щелчка мышью (d) onclick inLine click function.

Моя проблема заключается в следующем: я хочу вызвать функцию onclick делегата поверх другой функции onclick. Это означает, что когда генерируется событие click, первый вызов должен быть функцией onclick делегата, а не функцией other.В 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 и обновит базу данных, чтобы конкретное событие click по определенной ссылке или кнопке генерировалось на конкретной странице.Теперь на сайте может быть много страниц, а на одной конкретной странице может быть много ссылок или кнопок.Я не хочу, чтобы изменить или изменить в существующем коде.Мне просто нужна глобальная функция jquery или javascript, которая вызывает каждое событие щелчка и отслеживает событие до того, как произойдет любое действие по умолчанию.

1 Ответ

0 голосов
/ 11 октября 2011

Click, Bind Delegate - это порядок, если щелчок 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...