0

我仍在学习 jQuery(1.6 分钟)和 Javascript,但到目前为止,我对我能够实现的目标感到非常满意,但这个问题让我上当了——我已经看了四个小时了!

我在 a 中包含的页面上有以下链接(其 id 值为“NorthWest”):-

<figure><a href="http://localhost:8888/popup/PFS98394" class="popUpSimple"><img src="http://localhost:8888/98394.jpg" alt="" border="0"></a></figure>

单击它时,将内容正确加载到 a 中,使其可见。它不会重新加载页面,只是使 DIV 在当前内容之上可见。执行此操作的 Javascript 使用标准的 jQuery Fancybox。

一切正常,DIV 可以多次显示和隐藏,每次加载不同的信息。现在有一个 IMG 按钮,允许用户使用最新内容重新加载“NorthWest”DIV - 单击它时会执行以下代码:

 $(".RefreshThumb").find("a").click(function(){
   $(".RefreshLoader").show();
   $("#NorthWest").load("/refreshdata");
   setTimeout(RefreshHide,1000);
 });

setTimeout 行指的是一个小图形(刷新加载程序),它会立即显示以告知用户正在刷新数据。

现在,取出 $("#NorthWest").load 等行,一切正常。重新添加该行,popUpSimple 链接可以正常工作,直到单击 IMG 按钮刷新 NorthWest DIV,之后 popUpSimple 内容作为新页面加载并且不再覆盖 - 在单击弹出覆盖之前无论如何都可以正常工作你点击了多少次。

编辑:我应该指出,在单击 IMG 按钮重新加载 NorthWest DIV 后它会成功,只有当您单击 popUpSimple 链接时才会出现问题!

我做错了什么?我正在使用 Safari 并在页面重新加载而不是加载到 DIV 显示后查看 Web Inspector 窗口:

<script type="text/javascript">
$(document).ready(function() {

有一条消息说参考错误:找不到变量 $。

谁能指出我正确的方向....拜托!

4

2 回答 2

1

这听起来像一个事件监听器问题,尝试使用.on('click',function(){}而不是.click(function(){}

于 2012-06-05T21:32:28.273 回答
1

也许 jquery '$' 被另一个 JS 框架覆盖。

只需将您的 '$' 替换为 'jQuery' ,当然不带单引号。您甚至可以尝试使用http://api.jquery.com/jQuery.noConflict/ 您可以在加载 jQuery 库后立即添加它,例如:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Code that uses other library's $ can follow here.
</script>
于 2012-06-05T22:12:39.870 回答