我一直面对这种奇怪的行为,现在找不到任何解决方法。
点击时有一个按钮,其中包含某些方法。 在Firefox中运行良好。在Chrome中,它只刷新整个页面。
$("#modoComparativa").click(function(){
if($(this).hasClass("active")){
$('#histFromDate').attr("placeholder","Date 1");
$('#histToDate').attr("disabled","disabled").attr("placeholder","Date 2");
startDatepickerComp();
}
else{
$('#histFromDate').attr("placeholder","Initial date");
$('#histToDate').attr("disabled","disabled").attr("placeholder","Final date");
startDatepicker();
}
$('#clearDates').attr("disabled","disabled");
// This function calls another function causing the odd behavior in Chrome
requestGraph(idDetail, idArea, "", "");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
如果我注释掉除了选择器和对click方法的调用之外的所有内容,则行为是相同的。它刷新了一切。
我无法弄清楚如何调试这个,因为每次按下按钮,整个页面都会刷新,浏览器调试器中没有任何日志/错误。
任何想法都将不胜感激。
编辑 - 按要求添加选择器:
<div class="form-group"><button class="tooltip3 btn btn-default glyphicon glyphicon-random" id="modoComparativa" data-toggle="tooltip" title="ACTIVAR COMPARATIVAS" data-placement="bottom"></button>
</div>
答案 0 :(得分:8)
在点击回调中添加一个返回false,以防止由于您的html语法而导致的操作(例如表单提交或点击锚标记)。
$("#modoComparativa").click(function(event){
event.preventDefault();
// your existing code
}
编辑:因为你添加了你的HTML ......
如果您的按钮位于表单中,您还可以添加type =“button”属性以防止其提交表单。
<button type="button" class="tooltip3 btn btn-default glyphicon glyphicon-random" id="modoComparativa" data-toggle="tooltip" title="ACTIVAR COMPARATIVAS" data-placement="bottom"></button>
感谢lonesomeday建议http://api.jquery.com/event.preventDefault/
答案 1 :(得分:0)
我添加了一个答案,这对于在这里磕磕绊绊的人有用,但有其他原因导致这种行为。 这种意外的随机重载可能是由于以下几个原因造成的:
GET
<img>
为空或无效的图片代码src
,浏览器将尝试使用GET
加载图片,但实际上会刷新页面(空=相对)到页面=页面)。即使是隐藏的图像也会被加载,因此使用浏览器控制台可能很难找到!在任何情况下都使用浏览器控制台并查找对页面本身的可疑GET
次调用或重定向。