【问题标题】:Reloading/refreshing div with Ajax使用 Ajax 重新加载/刷新 div
【发布时间】:2012-09-19 19:22:16
【问题描述】:

我正在尝试将一段jquery放在一起以显示隐藏的div,同时刷新父div,以便javascript可以修改并显示新的高度。

这是我到目前为止所拥有的,但经过一些研究发现,除了刷新 div 你必须使用 ajax 并且想知道是否有人可以伸出援手。

var $r = jQuery.noConflict();
  $r(document).ready(function() {
      $r('#open').click(function () {
        $r('#expandable-2').show('slow');
        $r(this).load(location.href + '.panel > *');
      });
       $r('#close').click(function () {
        $r('#expandable-2').hide('1000');
        $r(this).load(location.href + '.panel > *');
      });
  });

到目前为止,我有这个,

  • 带有打开和关闭 ID 的链接
  • 单击后,它们将显示块的 css 属性提供给 div expandable-2 并不显示任何内容
  • 我坚持的部分是刷新父 div .panel 以便正确显示显示的 div。

原因是我目前在我的页面中使用 CodaSlider 脚本,并且高度是根据容器中的内容量动态引入的。现在为了在单击打开时显示新内容,需要刷新容器,从而以新的高度显示新内容。

希望这是有道理的,但任何帮助都会很棒。

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:

    “刷新”你只需要做的 div:

    document.getElementById("myDiv").innerHTML = new_content;
    

    new_content 可能是您的 ajax 调用返回的 html,但您绝对不需要 ajax 调用来“刷新”一个 div。

    【讨论】:

      【解决方案2】:

      你可以用jQuery的html方法改变一个div的html。

      $r(".content-div").html("Hello world");
      

      如果你想用ajax从服务器加载一个html,你应该使用load函数如下:

      $r(".content-div").load("ajax/users.html");
      

      【讨论】:

        【解决方案3】:

        您的代码明显一团糟。只是一些提示:

        • 如果您的父 div 包含 #expandable-2,那么您将无法执行 ajax 调用并立即显示动画,因为 ajax 调用会在 #expandable-2 元素出现时破坏它/消失。
        • 通过ajax加载外部代码到div的正确方法是:

          $r('.panel').load('/path/to/url');
          

          这会将“/path/to/url”的响应加载到“.panel”div中。 确保'/path/to/url'只返回div的新内容,否则不能使用$r('.panel').load,而是必须使用间接的方式来代替(即:$r.ajax)

        【讨论】:

          猜你喜欢
          • 2013-08-31
          • 2013-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-23
          相关资源
          最近更新 更多