2010-12-03 53 views
1

我有一個頁面haschhange選項卡,所以當我點擊一個鏈接的url看起來像www.site.com/abc.php#123.php你如何使用jQuery的.live()自定義函數?

但因爲這個我的功能不起作用。

我有一個頁面特定的腳本,如果我去www.site.com/123.php工作。但是當頁面通過hashchange插件通過ajax加載時它不起作用。

我在想,我需要使用.live(),以便在頁面加載時,將捕獲新的內容...... hmmmm

有沒有這樣做的另一種方式? ( 「tab_content」):

我想我123.php頁面上運行此代碼

$隱藏(); //隱藏所有內容 $(「#files_left_pane> ul.tabs li:first」)。addClass(「active」)。show(); //激活第一個標籤 $(「#files_right_pane> .tab_content:first」)。show(); //顯示第一個標籤內容 //點擊事件 $(「#files_left_pane> ul.tabs li」)。click(function(){ $(「#files_left_pane> ul.tabs li」)。removeClass(「active 「); //刪除任何」活動「類 $(this).addClass(」active「); //將」活動「類添加到選定的選項卡 $(」#files_right_pane> .tab_content「)。hide(); //隱藏所有標籤內容

var activeTab = $(this).find(「a」)。attr(「href」); //查找href屬性值以標識活動標籤+ content $(activeTab ).fadeIn(); //淡入主動ID內容 return false; });

UPDATE:

我試圖總結我的腳本$(選擇).live( '點擊',函數(){});但我注意到,任何JS我放在123.php將不會通過散列修改一次加載

UPDATE:沒關係,我不得不運行函數在啓動haschange並加載內容通過ajax。

感謝prodigitalson

回答

1

我Ĵ定義你已作爲一個函數提供的代碼,然後使用該功能的成功回調對於AJAX的藝術:

function updateTabs(){ 
    // the code you provided 
} 

// exmaple ajax call: 

$.get(theUrl, function(){ 
    // other logic you need 

    updateTabs(); 
}); 

這使您可以重用代碼在任何數量的操作之後/之前。我不認爲live是真正的問題聽到,因爲你想在你添加新的內容到DOM後運行這個,但這個內容不是唯一的一個特定元素被添加從我可以告訴。

+0

ohmmmmmmmmmmmmm讓我試試,我想我也試過。但讓我檢查 – Eli 2010-12-03 04:09:34