0

我正在尝试将一段 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 脚本,并且高度是根据容器中的内容量动态引入的。现在为了在单击打开时显示新内容,需要刷新容器,从而以新高度显示新内容。

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

4

3 回答 3

1

to "refresh" a div you just need to do:

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

new_content may be the html returned by your ajax call but you definitely DON'T need an ajax call to "refresh" a div.

于 2012-09-19T11:14:49.910 回答
0

html您可以使用jQuery 的方法更改 div 的 html 。

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

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

$r(".content-div").load("ajax/users.html");
于 2012-09-19T11:21:11.600 回答
0

您的代码明显混乱。只是一些提示:

  • 如果您的父 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 )

于 2012-09-19T11:22:16.833 回答