我写了一些代码来生成自定义控件。该代码返回一个 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/