Я имею, ниже которого отключает все гиперссылки, но после события я хочу включить им назад все снова, как я могу сделать это?
$("a").click(function() { return false; });
Я не думаю его столь же простой как просто установка его к истинному.;)
Спасибо все
Вместо того, чтобы связывать обработчик щелчка таким образом, сделайте следующее:
$('a').bind("click.myDisable", function() { return false; });
Затем, когда вы захотите удалить этот обработчик, это будет просто:
$('a').unbind("click.myDisable");
Таким образом вы избежите путаницы другие вещи, которые могут быть связаны с "щелчком". Если вы просто отвяжете «щелчок», вы отвяжете все, что связано с этим событием.
редактировать в 2014 году - теперь вы привязываете события с помощью .on ()
:
$('a').on('click.myDisable', function() { return false; });
Вероятно, было бы лучше сделать это:
$('a').on('click.myDisable', function(e) { e.preventDefault(); });
Чтобы отключить:
$('a').off('click.myDisable');
Наконец, вы можете привязать обработчик к телу документа и работать с тегами
, которые добавляются динамически:
$('body').on('click.myDisable', 'a', function(e) { e.preventDefault(); });
// to unbind
$('body').off('click.myDisable');
Попробуйте следующее:
// Better to use the live event handler here, performancewise
$('a').live('click', function() {... return false;});
// Now simply kill the binding like this
$('a').die('click');
пока
Вы хотите отменить привязку события: http://api.jquery.com/unbind/
Вы должны иметь возможность отменить привязку.
$("a").unbind("click");
, вы можете отвязать обработчик кликов:
$('a').unbind('click')
Связывание и открепление требует дополнительных затрат.
Другим решением было бы добавить такой класс, как disabled
, а затем использовать hasClass ('disabled')
, чтобы проверить, должен ли он возвращать false
.
$('a').addClass('disabled');
$('a').click(function() {
if($(this).hasClass('disabled'))
return false;
});
var disableLink = function(){ return false;};
$('a').bind('click', disableLink);
для восстановления:
$('a').unbind('click', dsiableLink);
$(function(){
$.myStopAnchor = function(){
$stop = true;
}
$.myNoStopAnchor = function(){
$stop = false;
}
$.myNoStopAnchor();
$("a").click(function(ev) {
if ($stop){
ev.stopPropagation()
}
return !$stop;
});
});