2

我在使用 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(click) 而不是内联 onclick,但发生了同样的问题....提前致谢-sunil

4

2 回答 2

0

使用更好的 JavaScript 链接来消除副作用。用 span 元素替换锚点以避免void() 函数冲突并将 onclick 移动到jQuery .click事件。

于 2012-05-16T06:05:03.760 回答
0

出于调试的目的,请尝试在ajax调用后重新运行js脚本。我会将您的 javascript 放在一个 .js 文件中,然后像这样重新运行它:

 $(document).ready(function(){
       //your ajax call
       $.getScript("yourjs.js");
 });
于 2015-02-11T09:29:51.247 回答