编辑:

目的是在单击链接时不要将屏幕移至页面顶部。我只希望它隐藏简短的描述并显示完整的描述。

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 &raquo;</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;
});


它执行长/短描述的显示/隐藏,但不会阻止页面从顶部开始。

最佳答案

docs


  在事件处理程序中调用event.stopPropagation()在以下情况下无效
  停止附加在文档下方的事件处理程序;该事件有
  已经传播到文档。


您应该改为使用.on(),如果尚未使用1.7+,则应使用.delegate()

07-24 09:43
查看更多