仅使用 jscript 或 ajax 重置 1 个 DIV

Reset only 1 DIV using jscript or ajax

本文关键字:重置 DIV ajax jscript      更新时间:2023-09-26

我正在尝试重新加载 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

首先:你可能希望在函数调用中返回 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 上使用您的文件进行了检查,问题不在于点击事件或该事件的调用,问题出在刮刮器.js文件中的更改中。

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

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

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

也许你应该阻止默认的链接操作:

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

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

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

$(function() {
  $("#refresh").on('click', function(e) {
     e.preventDefault();
     $("#scratcher-box").load("index.php");
  });
});