点击方法没有触发
问题描述:
我有一个菜单,当点击链接时我需要滚动回页首。我有这个代码。点击方法没有触发
$('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);
});
+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没有被浏览器跟踪,但只是您的代码被执行。
找到了解答? –