我正面临着一个奇怪的Chrome问题。我试图解决这个问题在一个页面,这不是由任何w3c标准开发的。我可以说几乎是1000+ w3c的问题。
错误发生在"onclick“函数上,该函数在ajax调用之前工作正常。在ajax调用之后,我们将过滤内容(包括使用onclick的链接)。这两个函数分别用于.show()容器和.hide()容器,并且在初始加载时运行良好。但是在使用ajax刷新链接之后,.show()和hide()就不起作用了(浏览器在视觉上没有变化)。但我发现,即使在ajax之后,函数调用也能正常进行。我通过在函数中提供一个警报来测试这一点。但是函数内部的.show()和hide()没有发生。
我发现了一个奇怪的行为,当我右键单击链接来检查元素时,函数中的show()和hide()都工作得很好。
Safari、IE、Firefox等没有问题,只有Chrome有问题。
希望这里的一些专家能帮助我解决这个问题。
代码如下:
HTML
<a href="javascript:void(0);" onclick="swap(1)" >Show hotels in area</a>
<a href="javascript:void(0);" onclick="swap(2)">Show hotels on map</a>
<table border="0" cellpadding="0" cellspacing="0">
<tr id="hotelArea" style="display: none">
<td>
<!-- Hote Area Content here -->
</td>
</tr>
<tr id="hotelsMap" style="display: none">
<td>
<!-- MAP Content here -->
</td>
</tr>
</table>
html后面的Javascript (位于页面底部):
function swap(n){
if(n==1){
$('#hotelsMap').hide('slow');
$('#hotelArea').show('slow');
}
if(n==2){
$('#hotelArea').hide('slow');
displayHotelsOnMap();
$('#hotelsMap').show('slow');
}
}
我也尝试使用.live(点击)而不是内联onclick,但同样的问题也发生了……预先感谢-sunil
发布于 2012-05-16 06:05:04
使用better JavaScript links消除副作用。将锚点替换为span元素以避免void() function conflict,并将onclick移动到jQuery .click事件。
发布于 2015-02-11 09:29:51
出于调试的目的,请尝试在ajax调用之后重新运行js脚本。我会把你的javascript放在一个.js文件里,然后像这样重新运行它:
$(document).ready(function(){
//your ajax call
$.getScript("yourjs.js");
});
https://stackoverflow.com/questions/10141265
复制相似问题