3

ページにタブ スタイルのナビゲーションがあります。ページの読み込み時にタブ識別子が URL に渡された場合、適切なタブを表示したい (例: http://example.com/page.html#my-tab ) 。

現在、表示するタブをトリガーする A タグのイベント ハンドラーは、その親に委譲されています。

$("nav.tabs").delegate("a", "click", function (e) {
    //trigger event
}

URL の HASH のページ読み込みをチェックし、それが A タグの HREF 属性に対応しているかどうかをチェックし、そのイベントをトリガーしていますが、機能していません。

var tab = window.location.hash;

    if (tab != undefined) {
        console.log(tab)
        if ( $("a[href="+tab+"]" ).length > 0) {
            console.log(tab)
            $("a[href="+tab+"]").trigger("click");  
        }
    }

助言がありますか?ありがとう。

4

1 に答える 1

0

Firefox では動作することがわかりましたが、Chrome や IE では動作しません。匿名関数を使用する代わりに、名前を付けて呼び出しを「偽造」するのが最善の方法です

var $nav_tabs = $("nav.tabs");
$nav_tabs.delegate("a", "click", function clickme(e) {
 //trigger event
});

var tab = window.location.hash;
if (tab != undefined) {
    console.log(tab);
    if ((tab = $nav_tabs.find("a#" + tab)).length > 0) {
        console.log(tab);
        clickme.apply( $nav_tabs, [ { target: this } ]);   
    }
}
于 2012-12-06T21:09:07.313 に答える