2011-06-30 38 views
1

調用函數我有2個問題jQuery的上hashchange

  1. 我使用hashchange插件....所以我想知道,就如下面的函數,調用每次一個hashchange發生......因爲我有類似的東西在我的代碼和代碼功能明顯犯規好像是叫

    $(document).ready(function() 
    { 
        // function here 
    }); 
    
  2. 另外有,如果我刪除hashchange中,如果我做http://abc.com/a.htm#http://abc.com/b.htmhttp://abc.com/b.htm 代碼工作正常

問題是我的網頁的結構略有不同....這裏是與頁面的結構,在更高層次上什麼,我想實現jsfiddle.net/vBKWd/9介紹小提琴...哈希變化理由我的網頁上的div 1被第2頁取代,反之亦然....以及下面顯示的js函數只會調用一次而不是在hashchange之後調用

或者是任何我可以綁定的方式使用div的功能,以便每當div被替換函數調用?

+0

您的例子沒有任何傳達。也許增加一些更多的細節? – Anurag

+0

我們可以看到你的函數的代碼嗎? – amosrivera

+0

@amosrivera該函數工作完全正常...問題是,它被稱爲一次,當頁面加載,但不是哈希變化... – koool

回答

3

不,ready處理程序僅在文檔就緒時調用,而不是在散列更改上調用。您應該使用hashchange事件爲,而不是:

$(window).hashchange(function() { 
    // function here 
}); 

樣品:http://jsfiddle.net/vBKWd/2/

+0

@ domenic沒有工作 – koool

+1

「沒有工作」...你能有點更具描述性?也許產生一個JSFiddle的例子,它不工作?你說的是代替'//這裏函數的代碼不會在'hashchange'上被調用,或者「沒有工作」的意思是別的嗎? – Domenic

+0

@Domenic ...是否有任何方法我可以綁定與div的功能,以便每當div是替換函數調用? – koool

-1

使用live在這種情況下

$(document).ready(function() 
{ 
    $(selector).live(hashchange, function(){ 
    // your code goes here 

    }); 
}); 
+0

問題是我的頁面結構有點不同....這裏是頁面結構的小提琴,我試圖實現http://jsfiddle.net/vBKWd/9/在散列更改上我的頁面1上的div c被第2頁替換,反之亦然....以及我顯示的js函數下面只是調用一次,而不是在hashchange後...這有幫助嗎? – koool

+0

+1順便說一句,感謝您的幫助 – koool

+1

'ReferenceError:hashchange is undefined'。而且,'live'對''hashchange''沒有任何影響,'hashchange'事件不能應用於非'windowow'對象。 -1 – Domenic