2011-07-07 54 views
1

感谢您看看这个问题。我试图让jQuery扩展函数在我的UI中工作。如何获取扩展函数以使用动态jQuery数据?

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

我创建了4层滑动,以更好地说明这个问题(参见下面的图像):

SLIDE 1:包含我想要显示的每个模块中,扩大小文的UI。

SLIDE 2:股利结构设置的jQuery实时填充日期

SLIDE 3: Chrome检查表示在存储器(未在HTML源)动态地保持的数据

SLIDE 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> 

回答

1

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

+0

非常感谢。我刚刚使用.live()添加了编辑1到我的主帖子,其中包含新代码。它看起来没有工作... –

+0

哦,这不是一个事件功能,而是一个造型功能。我能想到的唯一解决方案是服务器将幻灯片4中的代码与Ajax数据一起发送。丑陋,但工作。 – Eric

1

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

+0

克里斯感谢您的回应。我只是想知道如果你认为.live()可能是解决方案,如果是的话,将如何实现它?再次感谢! –