编辑:
目标是在点击链接时不要将屏幕移动到页面顶部。我只是想隐藏简短描述并显示完整的描述。
jQuery("#more_info a").live('click', function(event)
{
event.preventDefault();
jQuery('#food_desc').hide();
jQuery('#food_desc_full').show();
});
上述代码的工作原理除了停止发生默认事件(转到页面顶部)之外。是因为live()事件吗?
编辑:
我甚至试过这个:
if (data.body_summary)
{
jQuery("#food_desc").append('<p id="more_info"><a href="#">MORE »</a></p>');
jQuery("#more_info a").click(function(event)
{
event.preventDefault();
jQuery('#food_desc').hide();
jQuery('#food_desc_full').show();
return false;
});
}
仍然是页面顶部...
我也试过这个:
jQuery("body").delegate("#more_info a", "click", function(event)
{
event.stopPropagation();
event.preventDefault();
jQuery('#food_desc').hide();
jQuery('#food_desc_full').show();
return false;
});
它显示/隐藏长/短描述,但不会阻止页面返回顶部。
答案 0 :(得分:0)
来自docs:
在事件处理程序中调用
event.stopPropagation()
无效 停止文件中较低的事件处理程序;事件有 已经传播到文件。
如果您还没有使用1.7 +,则应使用.on()
或.delegate()
。
答案 1 :(得分:0)
这不是因为#
中的href
吗?
答案 2 :(得分:0)
我需要在标记的onclick事件中返回false。看看这个问题event.preventDefault() vs. return false
答案 3 :(得分:0)
您需要在委托中return false;
生效e.stopPropagation();
无用的