内容更改时jQuery函数无法正常工作

时间:2013-01-04 16:59:47

标签: jquery html sorting append live

我正在使用此函数在元素中添加div,

(function() {
        $('.p-item').append('<div class="p-info-wrap"></div>)';
}) ();

我还在同一页面中使用'quicksand'插件创建了一个可过滤的库。在画廊里面,我有上面提到的类(p-item)的元素。当我对图库进行排序时,内容正在发生变化,突然上面附加的div正在消失。

帮助我保持div活着,即使画廊已经分类。

问候。

3 个答案:

答案 0 :(得分:0)

在排序过程结束时调用此函数

function addDiv() {
  $('.p-item').append('<div class="p-info-wrap"></div>)';
}

答案 1 :(得分:0)

我不知道流沙是否提供了像排序后事件这样的钩子,但这里有一个通用的方法可以解决这个问题:

var doMod = true;
$('#tree')[0].addEventListener('DOMSubtreeModified', function() {
    if (!doMod) { return; }
    doMod = false; // Supress handling of subtree event
    $('#tree').append('foo');    
    doMod = true; // Restore the doMod flag
});

$('#tree').html('<p>New content</p>');

示例:http://jsfiddle.net/8dUSJ/

不推荐使用'DOMSubtreeModified'事件,它应该被Mutation observers取代。我对后者知之甚少,所以请参考文档。它似乎有可疑的浏览器支持。

编辑:

我们对此很清楚:上述解决方案不会让DIV'活着'。它只允许你在排序后读取它。

答案 2 :(得分:0)

append()末尾的代码存在问题,'以外的append()不在(function() { $('.p-item').append('<div class="p-info-wrap"></div>)'; })(); //------------------------------------------^-----here is the issue. 内。

(function() {
    $('.p-item').append('<div class="p-info-wrap"></div>');
})();

试试这个: http://jsfiddle.net/T8VC4/

{{1}}