2012-09-19 64 views
3

我在頁面上有一個標籤樣式導航。如果在頁面加載時傳遞選項卡標識符,我希望顯示適當的選項卡。 http://example.com/page.html#my-tab如何在使用delegate()處理事件的元素上觸發()事件

目前爲A標籤觸發即可顯示一個標籤被委託給它的事件處理程序的父:

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

我檢查在URL中的散列頁面加載,檢查,看看是否對應於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"); 
     } 
    } 

有什麼建議嗎?謝謝。

回答

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 } ]); 
    } 
} 
相關問題