javascript - 当 jQuery 元素附加到 DOM 时触发 OnAppend 事件

标签 javascript jquery html

我写了一些代码来生成自定义控件。该代码返回一个 jQuery 元素,调用者将此 jQuery 元素附加到 DOM。 我在生成器代码中将自定义滚动条应用到控件,但由于元素尚未附加到 DOM,因此未应用。

我的问题:是否有任何 onAppend 事件或类似事件,以便我在元素附加到 DOM 时应用自定义滚动条?

生成器示例代码:

function getControl(controlParams){
    var $control = $('<div/>');
    $control.applyCustomScrollBar(); //Not appended to DOM yet, so doesnt work
    return $control;
}

消费者示例代码:

var $control = getControl(controlParams);
$("body").append($control); //Appending to DOM now

想要做这样的事情:

function getControl(controlParams){
    var $control = $('<div/>');
    $control.onAppend(function(){
        $(this).applyCustomScrollBar();
    });

    return $control;
}

最佳答案

要检测元素是否已添加到 DOM,您需要触发一个自定义事件,试试这个:

$("body").on("appened", "div", function(event){
    //event after append the element into DOM, do anything
    $(this).css("background", "blue");
});

$("<div/>", {
    id: "some-control",
    text: 'Example Control'
}).appendTo("body").trigger("appened");​

fiddle 示例:http://jsfiddle.net/uudDj/1/

希望对你有帮助

关于javascript - 当 jQuery 元素附加到 DOM 时触发 OnAppend 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13988202/

相关文章:

javascript - 在 Highcharts 圆环图的工具提示上添加自定义数据

javascript - 更改元素背景图像而不是 sibling

javascript - 如何删除呈现的 html 中的路由器导出标签?

javascript - 未捕获( promise 中)使用SweetAlert2取消

javascript - 当弹出窗口完成父级启动的加载时,如何通知父级页面?

javascript - JQuery 关闭按钮事件处理程序

javascript - Knockout.js 在 ko.observable() 写入之前修改值

html - 显示列表的问题 - 样式

java - 如何使用输入字段永久保存到网页?

html - Bootstrap - 行跨越列但保持响应