2011-05-21 84 views
0
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $(".comment").click(function(){ 
    $(".commentForm").slideToggle("slow"); 
    }); 
}); 
</script> 
</head> 

这上面的脚本将在滑动距离,但后来不知怎的浏览器再次刷新,并把它带回原来的模式,用户可以看到的,而不是与墙根形式或停留的形式后滑入英寸的jQuery脚本刷新返回它excecutes

我曾尝试过两种浏览器Chrome和Chrome浏览器中的Mozzilla刷新速度比Firefox快。

为什么发生这种情况是由jquery.js引起的?

+0

浏览器可以刷新的唯一方法是如果您提交表单。你可以通过调用'form.submit()'提交表单,点击提交按钮或在输入字段中输入。 – Raynos 2011-05-21 14:51:14

回答

1

确保你从click事件处理程序返回false取消链接的默认操作:

$('.comment').click(function() { 
    $('.commentForm').slideToggle('slow'); 
    return false; 
}); 

或:

$('.comment').click(function(e) { 
    $('.commentForm').slideToggle('slow'); 
    e.preventDefault(); 
}); 

如果.comment选择代表<form>或锚和您不会阻止浏览器只会重定向的默认操作,并且JavaScript可能没有时间执行。

+0

它的工作原理是再次刷新它,Darin默认当站点加载是提出“.comment”这是一个标记评论,然后.commentForm这是一个

。默认返回的是显示评论文本和我只希望相反的表单只显示评论文本,然后单击时显示表单。现在就是这样。感谢返回False取消刷新。 – fello 2011-05-21 15:02:31

2

添加event.preventDefault();结束你的函数

$('.comment').click(function(e) { 
    $('.commentForm').slideToggle('slow'); 
    e.preventDefault(); 
}); 

这将阻止默认功能和刷新页面避免的。这不是浏览器问题。

+0

它的工作原理是再次刷新它,Darin站点加载时的默认值是呈现“.comment”,这是一个标记评论,然后是.commentForm这是一个

。默认返回的是显示评论文本和我只希望相反的表单只显示评论文本,然后单击时显示表单。现在就是这样。感谢返回False取消刷新。 – fello 2011-05-21 15:10:00