如何使用扩展器函数来处理动态jQuery数据?

时间:2011-07-07 19:34:16

标签: jquery function expand expander

感谢您查看此问题。我试图让jQuery扩展器功能在我的UI中工作。

问题是,当数据在HTML中进行硬编码时它会起作用,但是当数据由jQuery动态放置时它不起作用。

我创建了4张幻灯片以更好地说明问题(请参阅下面的图片):

幻灯片1:包含我尝试在每个模块中展开的小文字的用户界面。

幻灯片2:为jQuery设置di​​v结构以实时填充日期

幻灯片3: Chrome Inspector显示动态保存在内存中的数据(不在HTML源代码中)

幻灯片4:当我在HTML中对此进行硬编码时,扩展器功能正常工作:

<div class="tags-hidden"><p>some data...</p></div>

这是扩展器功能的起源: http://plugins.learningjquery.com/expander/

很多,非常感谢您提供的任何帮助或建议。以下是幻灯片:

Slide 1

Slide 2

Slide 3

Slide 4

编辑1 - 这是根据您的建议使用的新代码.live()...它似乎没有被点击调用:

<script type="text/javascript">
$(document).ready(function() {
$('.div.tags-hidden p').live('click', function() {
    $('div.tags-hidden p').expander({
      slicePoint:       80,  // default is 100
      expandText:         '[...]', // default is 'read more...'
      collapseTimer:    5000, // re-collapses after 5 seconds; default is 0, so no re-collapsing
      userCollapseText: '[^]'  // default is '[collapse expanded text]'
  });
});
</script>

2 个答案:

答案 0 :(得分:1)

加载内容后,您可能需要重新连接扩展程序插件。例如,如果您通过ajax调用动态加载内容,则需要在ajax加载完成后再次调用$('div.tags-hidden p').expander()

答案 1 :(得分:1)

我认为你需要使用.live()来表示在呈现页面时不显示的元素。看看http://api.jquery.com/live/