событие переопределения jquery
у меня есть такой якорь
<a href='#' onclick='return showform(this)'>click me</a>
но я хочу иметь возможность переопределить функцию onclick, как это сделать в jQuery?
потому что кажется, когда я добавить
$('a').click( function() { alert('hi there!'); } );
новый обработчик щелчка не переопределяет старый
4 ответов
в вашем случае событие onCick переопределяет событие jQuery. Что вы могли бы сделать это:
$('a').unbind('click').click(function(){
alert('why hello there children.');
})
но я считаю, что это должно быть включено после
<a href='#' onclick='return showform(this)'>click me</a>
тем не менее, вы действительно не должны использовать onClicks в любом случае... это делает код очень трудно поддерживать и изменять (как вы выяснили).
если вы используете jQuery, как это, вы не хотите никаких обработчиков в HTML. Вы не можете просто удалить ?
если вы беспокоитесь о нарушении вещи, поиск и замена на:
onclick='return showform(this)'
и заменить на
class='showform'
затем вы можете сделать:
$('a.showform').click(function (e) {
e.preventDefault();
return showform(this);
});
, который будет держать ваши существующие обработчики работают.
есть плагин для этого, но вы должны делать это только тогда, когда вам действительно нужно. Плагин позволяет вызывать исходную функцию или полностью игнорировать / заменять ее
$(divElementObj).override('onclick', 'click', function(...));