为什么我的jquery .load()函数不起作用?

时间:2012-06-14 20:49:37

标签: javascript jquery

我的网站上有一个按钮,当点击它时,应该在div容器中加载html。

我正在使用以下代码作为按钮:

<div id="nextnr1"><a href = "#">Next&gt;&gt;</a></div>

以下代码在有人点击div时执行加载:

<script type="text/javascript">
    $(document).ready(function() {
        $("#nextnr1").mousedown(function() {
            $("#Container").load("wrappers.php?currenttab=1&shift=1");
        });
    });​
</script>

这是加载HTML的容器的代码:

<div id="Container"></div>

问题是上述所有代码大部分时间都在运行。只有偶尔一次,函数.load没有完成他的工作。这是针对类似的情况,因为它是大致相同的页面。

我检查过,当点击该函数时,调用该函数:$(document).ready$("#nextnr1").mousedown(function() {..}正在执行其工作。只有.load 才能完成工作,因为我检查过没有向服务器发送HTTP请求。

如果有人能帮我解决这个问题,我会非常感激。

更新1

我尝试了消息框(参见下面的代码),它显示当没有执行加载时,它也没有显示消息框已执行加载。我也看到在2/3分钟后突然消息框出现并重新加载!然而它确实有效,但有时会有很大的延迟。

$(document).ready(function() {
   $("#renextnr2").click(function() {
      $("#Container").load("wrappers.php?currenttab=2&shift=1", function() {
           alert("Load was performed.");
      });
   });
});

5 个答案:

答案 0 :(得分:0)

首先,尝试使用'click'而不是mousedown。

第二,尝试将'click'事件挂钩到链接而不是div:

<div><a id="nextnr1" href = "#">Next&gt;&gt;</a></div>

答案 1 :(得分:0)

您可能需要停止传播/默认处理事件:

<div><a id="nextnr1" href="#">Next&gt;&gt;</a></div>

<script type="text/javascript">

$(document).ready(function() {
$("#nextnr1").click(function(e) {
  e.preventDefault();
  e.stopPropagation();
  $("#Container").load("wrappers.php?currenttab=1&shift=1");
});});

</script>

答案 2 :(得分:0)

首先要做的是添加一个警报来调试事件是否被触发,如下所示。这样可以更好地了解哪些区域更贴近以确定问题。

$('#Container').load('wrappers.php?currenttab=1&shift=1', function() {
  alert('Load was performed.');
});

答案 3 :(得分:0)

我在网址末尾添加了一个随机数字来解决问题。

答案 4 :(得分:0)

如果服务器端代码(PHP)中存在问题,则jquery load()函数的行为可能会不一致。

我遇到了一个问题,其中load()在我的本地站点上工作,但是在我的主机上却不能始终如一地工作。原来,我编写了一些不良的PHP,这些PHP在本地环境中不会引起任何问题,但是在部署到主机时却引起了问题。

如果直接访问URL,请检查以确保使用JavaScript加载的URL可以在浏览器中加载。它将告诉您是JavaScript还是服务器端问题。