在jQuery中追加回调

时间:2012-05-22 11:54:22

标签: jquery callback append

我有一个解决方案:

var addContent = {
...
append: function (obj, data, callBack) {
        "use strict";
        obj.append(data);
        callBack();
    }
}

“addContent.append()”函数将其数据参数值添加到其obj并调用其callBack(),它也正常工作! 但是“obj参数”并没有出现在DOM中那些在“数据参数”中找不到它的元素。

例如:

var to = jQuery('<div>');
addContent.append(to, '<div id="element1"></div>', function () {
    alert(jQuery('#element1').length);
});

此代码显示“0”。

你有解决方案吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,问题是to引用的元素不在DOM中,因此当您尝试选择已附加到其中的元素时,找不到它们(因为他们的父母不在DOM中)。

我认为你可能想要的是背景论证:

alert(jQuery('#element1', to).length);

这将选择与#element1的后代匹配的to元素。

答案 1 :(得分:0)

使用文档就绪功能

jQuery(document).ready(function(){
    var addContent = {
    append: function (obj, data, callBack) {
            "use strict";
            obj.append(data);
            callBack();
        }
    }
    var to = jQuery('div');
    addContent.append(to, '<div id="element1">545</div>', function () {
        alert(jQuery('#element1').length);
    });
});