通过ajax加载时jquery滑块不起作用

Posted

技术标签:

【中文标题】通过ajax加载时jquery滑块不起作用【英文标题】:jquery sliders not working when loading through ajax 【发布时间】:2011-10-13 09:06:31 【问题描述】:

我正在使用 jquery 滑块插件来创建一些滑块。当我在启动 dom 时直接加载它们时,这很好用,但是当我尝试使用 ajax innerhtml 方法将滑块加载到 div 中时,它们不会被启动。

有没有人知道我该怎么做?

【问题讨论】:

【参考方案1】:

您必须再次启动/绑定您的事件。

例如

//Ajax done and innerHTML is set
$('container').slider(); //Just an example... this will bind events.

或者

您可以将事件处理程序更改为 .live 。这处理动态内容。

【讨论】:

【参考方案2】:

通过设置对象的 innerHTML 创建滑块时,滑块不会被初始化。 试试这个(对于范围滑块):

$.ajax(
  url: "get_slider.php",
  success: function(data)
    if(typeof(data) == 'string') data = JSON.parse(data);
    $('#my_slider_id').slider(
            range: true,
            min: data.min,
            max: data.max
        );
  ,
  error: function(data)
    // Something went wrong, do stuff here
  
);

这里我们期望 get_slider.php 返回一个 JSON 对象,其中至少包含一个 min 和一个 max 属性,用于实例化滑块。

【讨论】:

【参考方案3】:

当您使用innerHTMl 将滑块添加到div 时,您必须再次调用滑块设置方法,以便在将滑块添加到div 时将事件附加到滑块。 谢谢 阿什瓦尼

【讨论】:

【参考方案4】:

尝试使用 $.ajax 方法中的 OnComplete 属性来触发滑块的方法。这将确保只有在加载 ajax 内容后才会触发该方法。

【讨论】:

以上是关于通过ajax加载时jquery滑块不起作用的主要内容,如果未能解决你的问题,请参考以下文章

无限滚动加载更多信息后,滑动滑块不起作用

引导滑块不起作用

更改曲目 NAudio 后滑块不起作用

滑块不起作用并更新图表中的值

在百里香弹簧靴中,动态旋转木马滑块不起作用

当通过 ajax 加载表单时,jQuery 的 live 和 livequery 对我不起作用