我一直遇到让.expander与包含动态jQuery数据的div一起工作的问题(即在加载DOM之后)。一个用户确实建议尝试.live(),这让我更近了一步,但它创造了一些奇怪,如下图所示。
我指的是https://stackoverflow.com/users/830804/eric建议我尝试.live()的单独问题: How can I get the expander function to work with dynamic jQuery data?
注意:幻灯片1-4位于我之前的问题:
How can I get the expander function to work with dynamic jQuery data?
幻灯片5-6见下文。
幻灯片5:使用.live()在每个模块中创建一个exandable / collapsable div的用户界面
幻灯片6:在div上多次点击的结果...它添加了多个折叠链接
幻灯片7:使用.live()来定位动态jQuery数据的函数
感谢您提出的任何建议。
答案 0 :(得分:2)
您的初步答案是错误的。您要做的是在加载AJAX内容后设置扩展绑定,而不是单击。这是伪代码。
$.get('...' function(d) {
$('#dynamiclongp').text(d).expander(...);
});
每次点击标签隐藏的div时,都会调用.expander。我不确定您何时加载动态数据,但是您希望在设置内容后立即绑定一次扩展器,并且只需绑定一次。
如果由于某种原因无法访问AJAX回调函数,请确保只绑定一次事件。
var bound = false;
$('div.tags-hidden').live('click', function() {
if(!bound) {
$(this).find('p').expander(...);
bound = true;
}
});