Возникли проблемы с отменой привязки Jquery - PullRequest
0 голосов
/ 22 апреля 2011

Привет всем, у меня есть сценарий smoothscroller, реализованный в файле включения всего сайта.Но я хочу отключить его на главной странице.(Smoothscroller в основном использует # якоря, чтобы браузер медленно и плавно перемещался вниз к разделу привязки. Никаких прыжков.)

Вот кикер.Я не хочу отключать ВСЕ клики, ТОЛЬКО тот, что касается smoothscroller.

Код сглаживателя начинается следующим образом:

$(function(){
  $('a[href*=#]').click(function() {

Теперь у меня есть TRIED, помещающий следующее после вызова сглаживателя на странице:

$('a[href*=#]').unbind('click');

Но этоотключает ВСЕ клики по этой ссылке.(Они используют систему вкладок jquery, которая также использует действие щелчка.

Я также попытался присвоить переменную функции щелчка:

var narf = $('a[href*=#]').click(function() {

И затем использовал эту привязку ...

$('a[href*=#]').unbind('click',narf);

Но, похоже, это НЕТ эффекта! Может кто-нибудь пролить свет на это? Какую очевидную ошибку я упустил?

1 Ответ

2 голосов
/ 22 апреля 2011

Вы можете использовать пространство имен событий:

http://docs.jquery.com/Namespaced_Events

Это позволит вам выбрать специальный обработчик событий для отмены привязки, например, так ...

$('a[href*=#]').bind('click.thisone', function(){
    // Wacky stuff happens
}).bind('click.thistwo', function(){
    // Crazy stuff happens
}).bind('click.thisthree', function(){
    // Weird stuff happens
});

// Only one is unbound
$('a[href*=#]').unbind('click.thisone');
...