1

我正在尝试重新加载 DIV 而不重新加载其余部分,我在许多网站(包括这个网站)上找到了下面的脚本,但是我发现的每一个变体都不起作用,如果我在 href 中包含 # 它什么都不做,如果我删除它会重新加载整个页面

$(function() {
  $("#refresh").click(function(evt) {
     $("#scratcher-box").load("index.php")
  })
})

<a href="#" id="refresh">click</a>

尝试禁用我正在运行的许多其他迷你脚本、切换 div、延迟加载和计数。拥有 JQuery 1.7.2 加载器以及http://dl.dropbox.com/u/31213713/scratcher.js,其中一些更改破坏了包含的重置按钮。我的 jscrips 很糟糕,所以寻找一个备份计划以防我们无法修复重置,这是原始的http://dl.dropbox.com/u/31213713/scratcher_orig.js

4

3 回答 3

0

可能您应该阻止默认链接操作:

$(function() {
  $("#refresh").click(function(evt) {
     evt.preventDefault();
     $("#scratcher-box").load("index.php")
  })
})

然后确保#scratcher-box在页面中有一个元素

于 2012-05-14T08:28:57.543 回答
0

一方面:您可能希望在函数调用中返回 false,因为您不希望执行 href。在函数中返回 false 将禁用您包装点击的元素的默认执行(在这种情况下执行 href)。

第二:您正在尝试将 index.php 加载到带有 id 刮板框的元素中,这似乎不存在?您要么忘记创建这样的元素,要么没有发布完整的代码。尝试以下操作:

<a href="#" id="refresh">click</a>
<div id="scratcher-box" />

<script type="text/javascript">
  $(function() {
    $("#refresh").click(function(evt) {
      $("#scratcher-box").load("index.php")
      return false;
    })
  })
</script>

审查问题后:我已经检查了在 Dropbox 上使用您的文件,问题不在于 click 事件或该事件的调用中,问题在于 Scratcher.js 文件中的更改。

您已将 javascript 调用中的“Scratcher”对象的数量从 3 个更改为 20 个。但是,一旦脚本尝试获取 Scratcher4 的宽度,它就会在第 192 行引发错误,因为没有 ID 为 Scratcher4 的画布元素。

加载文档时会引发此错误,这导致 javascript 除了等待您修复该错误并添加这些画布元素外,无法执行任何其他操作。

除了将划痕添加到 javascript 对象中,还可以在 HTML 中创建画布项。这可以修复您的错误,并使 javascript 能够执行 .click 调用。

于 2012-05-14T08:31:22.083 回答
0

您可以使用以下代码:通过添加 preventDefault 您可以阻止锚标记的默认操作

$(function() {
  $("#refresh").on('click', function(e) {
     e.preventDefault();
     $("#scratcher-box").load("index.php");
  });
});
于 2012-05-14T08:35:10.457 回答