使用jQuery在动态元素(DIV)上自动触发单击事件

时间:2014-03-17 15:50:36

标签: jquery jquery-ui

我有这个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创建,我无权改变它。

4 个答案:

答案 0 :(得分:2)

尝试了一切无济于事后,我采用了使用jQuery函数调用延迟的解决方法,即从页面加载的那一刻开始,在给定时间(例如半秒)后触发点击事件的执行。

 $(function() {
    setTimeout(function(){$("#slider").click()}, 500);
 });

这是对我有用的唯一方法。

答案 1 :(得分:0)

您可以使用触发器,但这不是解决此特定问题的整体原因的最佳方法

http://api.jquery.com/trigger/

答案 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