我的网站上有一个按钮,当点击它时,应该在div容器中加载html。
我正在使用以下代码作为按钮:
<div id="nextnr1"><a href = "#">Next>></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.");
});
});
});
答案 0 :(得分:0)
首先,尝试使用'click'而不是mousedown。
第二,尝试将'click'事件挂钩到链接而不是div:
<div><a id="nextnr1" href = "#">Next>></a></div>
答案 1 :(得分:0)
您可能需要停止传播/默认处理事件:
<div><a id="nextnr1" href="#">Next>></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还是服务器端问题。