pic*_*ter 2 html javascript jquery html5
我写了一些代码来生成自定义控件.代码返回一个jQuery元素,调用者将此jQuery元素附加到DOM.我将自定义滚动条应用于生成器代码中的控件,但它未应用,因为该元素尚未附加到DOM.
我的问题:是否有任何onAppend事件或类似事件,以便我在元素附加到DOM时应用自定义滚动条?
生成器的示例代码:
function getControl(controlParams){
var $control = $('<div/>');
$control.applyCustomScrollBar(); //Not appended to DOM yet, so doesnt work
return $control;
}
Run Code Online (Sandbox Code Playgroud)
消费者的示例代码:
var $control = getControl(controlParams);
$("body").append($control); //Appending to DOM now
Run Code Online (Sandbox Code Playgroud)
想做类似的事情:
function getControl(controlParams){
var $control = $('<div/>');
$control.onAppend(function(){
$(this).applyCustomScrollBar();
});
return $control;
}
Run Code Online (Sandbox Code Playgroud)
要检测元素是否已添加到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");?
Run Code Online (Sandbox Code Playgroud)
小提琴示例:http://jsfiddle.net/uudDj/1/
希望能帮助到你