2012-10-19 162 views
1

說我有兩個綁定事件 - 點擊和hashchange按照以下(超簡化的例子):傳遞參數

$('a').bind('click', function(e) { 
    location.hash = $(this).attr('id'); 
} 

$(window).bind('hashchange', function(e) { 
    console.log(e.target); 
} 

我將如何通過元素的提高點擊事件ID綁定到hashchange事件? 我見過像下面的例子,但不能得到它的工作:

$('a').bind('click', ['some-data'], function(e) { 
    location.hash = $(this).attr('id'); 
} 

$(window).bind('hashchange', function(e) { 
    console.log(e.data[0]); 
} 

任何意見將是巨大的......

回答

0

這是不可能發現從發起哈希變化錨在hashchange事件處理程序中,因爲事件是由window本身觸發的。

hashchange處理程序中,您可以檢查location.hash的值,因爲您之前已使用location.hash = $(this).attr('id')將錨的ID放在那裏。

$(window).bind('hashchange', function(e) { 
    console.log(location.hash.substr(1)); // should be the id of your anchor 
}