Как связать событие jquery перед выполнением события в теге - PullRequest
2 голосов
/ 12 октября 2009
<input type="button" onclick="executes second" />

$('input').click(function() { //this first }}

p.s. onclick = "выполняет второе" - не может быть удалено (его __doPostBack)

Ответы [ 4 ]

4 голосов
/ 12 октября 2009

попробуй ...

$(document).ready(function(){
    $("input").removeAttr("onclick");
    $("input").click(function(){
        // do first
        my_first_function();                
        // do second
        my_second_function();
        return false;               
    });
});
2 голосов
/ 12 октября 2009

Не могли бы вы просто сделать что-то вроде:

< input type="button" onclick="do_something();" />

function do_something() {
    // this first
    // then second?
 }}
0 голосов
/ 12 октября 2009

Полагаю, что встроенный обработчик onclick нельзя удалить, поскольку он был выведен ASP.NET. Чтобы решить эту проблему, вам нужно переопределить метод doPostBack ASP.NET, чтобы внедрить вашу функцию до того, как произойдет обратная передача. Попробуйте включить на своей странице следующую функцию, а затем использовать ее для добавления обработчика событий:

Обновление: Просто перечитайте и поняли, что этот ответ немного не соответствует цели - он в основном позволяет запускать события перед обратной передачей, но не обязательно привязан к обработчику нажатия кнопки.

var addToPostBack = function(func) {
    var old__doPostBack = __doPostBack;
    if (typeof __doPostBack != 'function') {
        __doPostBack = func;
    } else {
        __doPostBack = function() {
            func();
            old__doPostBack.apply(this, arguments);
        }
    }
};

...

<input type="button" id="btn" onclick="..." />

...

addToPostBack(function() { alert("You're posting back!"); });
0 голосов
/ 12 октября 2009

Если вы используете jQuery, нет необходимости вставлять клик в HTML:

$('input').click(function() {
    //this first
    something();
    // this last
    playSound();
});

Edit:
Просто удалите атрибут onclick с помощью jQuery:

$('input').removeAttr("onclick");

Вы можете поместить его в готовый документ или просто прикрепить его к вашему звонку

 $('input').removeAttr("onclick").click(function() {...});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...