我目前正在创建一个从服务器接收数据然后动态创建可折叠元素的应用程序。现在我的代码允许在整个应用程序中打开和关闭可折叠元素的动画:
$('[data-role="collapsible"]').bind('expand', function () {
$(this).children().slideDown(500);
}).bind('collapse', function () {
$(this).children().next().slideUp(500);
});
现在此代码不适用于动态创建的可折叠元素。因此,我尝试做的是以下内容:
$(document).on('pagechange','#resultssearch',
function()
{
$('[data-role="collapsible"]').bind('expand', function () {
$(this).children().slideDown(500);
}).bind('collapse', function () {
$(this).children().next().slideUp(500);
});
});
所以在添加了动态可折叠元素的页面上,我尝试添加上述页面事件。但是有些方法似乎也不起作用。我将如何动态生成动画?
如建议的答案所示,有效的代码如下:
$(document).on('expand', '[data-role="collapsible"]', function () {
$(this).children().slideDown(500);
}).on('collapse', '[data-role="collapsible"]', function () {
$(this).children().next().slideUp(500);
});
这怎么可能不是 100% 有效的。子可折叠的事件最终会影响父可折叠,这可以在这里看到。有什么方法可以阻止儿童可折叠设备这样做吗?