0

サイト全体のインクルード ファイルに Smoothscroller スクリプトを実装しました。しかし、ホームページで無効にしたい。(Smoothscroller は基本的に # アンカーを使用して、ブラウザーをアンカー セクションまでゆっくりとスムーズにスクロールさせます。ジャンプはありません。)

これがキッカーです。すべてのクリックを無効にするのではなく、smoothscroller に関するクリックのみを無効にします。

Smoothscroller コードは次のように始まります。

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

今、私はページ上で Smoothscroller 呼び出しの後に以下を入れてみました:

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

ただし、これにより、そのリンクのすべてのクリックが無効になります。(彼らは、クリック アクションも使用する jquery タブ システムを使用しています。

また、クリック関数に変数を割り当ててみました:

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

そして、このアンバインドを使用しました...

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

しかし、それは何の効果もないように見えました!誰でもこれに光を当てることができますか?私が見逃している明らかな間違いは何ですか?

4

1 に答える 1

2

イベントの名前空間を使用できます。

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');
于 2011-04-22T17:22:49.817 に答える