使用jscript或ajax仅重置1个DIV

时间:2012-05-14 08:23:58

标签: javascript ajax html reload

我正在尝试重新加载DIV而不重新加载其余部分,我已经在许多网站上找到了包含此文件的波纹管脚本,但我找到的每个变体都不起作用,如果我在href中包含#d的话没有,如果我删除它重新加载整个页面

$(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

3 个答案:

答案 0 :(得分:0)

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

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

然后确保在页面

中有#scratcher-box个元素

答案 1 :(得分:0)

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

第二:您正在尝试将index.php加载到具有id scratcher-box的元素中,这似乎不存在?您忘记创建这样的元素,或者您没有发布完整的代码。请尝试以下方法:

<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的canvas元素Scratcher4。

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

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

答案 2 :(得分:0)

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

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