我有这个HTML页面,其中body
内的所有内容都是动态生成的。要使用jQuery滑块,会生成DIV <div id="slider"></div>
。由于在页面加载后将动态元素添加到DOM中,我使用jQuery on()
仍然使用body
作为静态元素或容器添加DIV,如下面的代码所示。
$("body").on("click", "#slider", function(e){
$(this).slider({
min:50,
max:150,
step: 1,
value: 100
});
}
我现在的问题是:滑块仅在我点击后显示,这是有道理的,因为它是使用click event
绑定的。如何自动触发单击事件以使滑块可见。请注意,页面使用Ajax和动态DIV创建,我无权改变它。
答案 0 :(得分:2)
尝试了一切无济于事后,我采用了使用jQuery函数调用延迟的解决方法,即从页面加载的那一刻开始,在给定时间(例如半秒)后触发点击事件的执行。
$(function() {
setTimeout(function(){$("#slider").click()}, 500);
});
这是对我有用的唯一方法。
答案 1 :(得分:0)
您可以使用触发器,但这不是解决此特定问题的整体原因的最佳方法
答案 2 :(得分:0)
尝试使用 .trigger() :
$("body").on("click", "#slider", function(e){
$(this).slider({
min:50,
max:150,
step: 1,
value: 100
});
});
$('body').find('#slider').trigger('click');
答案 3 :(得分:0)
完成动态创建Div后,使用您的Ajax成功方法中建议的Felix代码。
$('body').find('#slider').trigger('click');
我假设你在ajax成功方法中创建div