2011-09-05 93 views
0

我有一個菜單,當點擊鏈接時我需要滾動回頁首。我有這個代碼。點擊方法沒有觸發

$('a').click(function(){ 

$('.positionHelper').scrollTo({top:'-800px', left:'0'}, 0); 

}); 

代碼只在firebug控制檯中運行處理程序函數時工作,但是當我將點擊附加到選擇器時它不起作用。唯一的例外是當我將它附加到$('html')。click。我,被解僱了

我用很多不同的選擇器測試過,沒有任何工作。

+0

找到了解答? –

回答

1

如果您的html是按照生成的方式生成的(在頁面加載後),您需要使用.live方法。您的代碼將是:

$('a').live('click', function(){ 

$('.positionHelper').scrollTo({top:'-800px', left:'0'}, 0); 

}); 
+0

會檢查這個,很可能是答案 –

1

在DOM加載後您是否附加了事件處理程序?

$(document).ready(function() { 
    $('a').click(function() { .... }; 
}); 

另一個可能的原因是,您的a標籤稍後在應用程序生命週期中呈現。因此,你會使用其綁定:

$('a').live('click', function() { ... }); 
0

如果你是一個事件綁定到a元素,你必須使用preventDefault,以確保超鏈接不會發生這樣有房的事件觸發。

$('a').click(function(event){ 

    event.preventDefault(); 
    $('.positionHelper').scrollTo({top:'-800px', left:'0'}, 0); 

}); 
1

您可能需要將代碼包裝在文檔就緒功能中。像這樣:

$(document).ready(function() { 
    $('a').click(function(){ 
     $('.positionHelper').scrollTo({top:'-800px', left:'0'}, 0); 
     return false; 
    }); 
}); 

您的問題,現在可能是DOM沒有完全裝呢,所以click事件沒有被綁定到像你想的錨(一個或多個)。此外,您可能希望添加一個返回false或一個「阻止默認值」,以確保在href屬性中指定的實際url沒有被瀏覽器跟蹤,但只是您的代碼被執行。