我有一個菜單,當點擊鏈接時我需要滾動回頁首。我有這個代碼。點擊方法沒有觸發
$('a').click(function(){
$('.positionHelper').scrollTo({top:'-800px', left:'0'}, 0);
});
代碼只在firebug控制檯中運行處理程序函數時工作,但是當我將點擊附加到選擇器時它不起作用。唯一的例外是當我將它附加到$('html')。click。我,被解僱了
我用很多不同的選擇器測試過,沒有任何工作。
我有一個菜單,當點擊鏈接時我需要滾動回頁首。我有這個代碼。點擊方法沒有觸發
$('a').click(function(){
$('.positionHelper').scrollTo({top:'-800px', left:'0'}, 0);
});
代碼只在firebug控制檯中運行處理程序函數時工作,但是當我將點擊附加到選擇器時它不起作用。唯一的例外是當我將它附加到$('html')。click。我,被解僱了
我用很多不同的選擇器測試過,沒有任何工作。
如果您的html是按照生成的方式生成的(在頁面加載後),您需要使用.live
方法。您的代碼將是:
$('a').live('click', function(){
$('.positionHelper').scrollTo({top:'-800px', left:'0'}, 0);
});
會檢查這個,很可能是答案 –
在DOM加載後您是否附加了事件處理程序?
$(document).ready(function() {
$('a').click(function() { .... };
});
另一個可能的原因是,您的a標籤稍後在應用程序生命週期中呈現。因此,你會使用其綁定:
$('a').live('click', function() { ... });
如果你是一個事件綁定到a
元素,你必須使用preventDefault
,以確保超鏈接不會發生這樣有房的事件觸發。
$('a').click(function(event){
event.preventDefault();
$('.positionHelper').scrollTo({top:'-800px', left:'0'}, 0);
});
您可能需要將代碼包裝在文檔就緒功能中。像這樣:
$(document).ready(function() {
$('a').click(function(){
$('.positionHelper').scrollTo({top:'-800px', left:'0'}, 0);
return false;
});
});
您的問題,現在可能是DOM沒有完全裝呢,所以click事件沒有被綁定到像你想的錨(一個或多個)。此外,您可能希望添加一個返回false或一個「阻止默認值」,以確保在href屬性中指定的實際url沒有被瀏覽器跟蹤,但只是您的代碼被執行。
找到了解答? –