jQuery将jQuery函数扩展为动态加载的内容

jQuery将jQuery函数扩展为动态加载的内容,jquery,dynamic,uislider,Jquery,Dynamic,Uislider,在使用.html()和.on()方法替换div的内容后,调用jQuery函数时遇到问题。 在我访问了很多页面之后,我确信这个问题是由于以错误的方式使用.on()方法引起的,但我无法找出问题所在。问题是jQueryUI滑块在加载html内容后无法工作。我认为解决方法可能很简单,但我就是找不到正确的答案,因为有数百人有类似的问题 我使用一个div元素作为主体来显示其他div元素的内容 <body> <a href="#" content="#div1">load conte

在使用.html()和.on()方法替换div的内容后,调用jQuery函数时遇到问题。 在我访问了很多页面之后,我确信这个问题是由于以错误的方式使用.on()方法引起的,但我无法找出问题所在。问题是jQueryUI滑块在加载html内容后无法工作。我认为解决方法可能很简单,但我就是找不到正确的答案,因为有数百人有类似的问题

我使用一个div元素作为主体来显示其他div元素的内容

<body>

<a href="#" content="#div1">load content</a>

<div id="body">static content with working UI slider 
 <div class="slider"></div> 
</div> 

 <div id="div1">loaded content where the UI slider is not working
  <div class="slider"></div>
 </div>

</body>

代码可以在以下位置找到:

您正在序列化HTML,因此旧元素将全部销毁,然后在新位置重新构建

与其调用以获取字符串形式的HTML,不如调用。这将返回实际元素,并保留所有绑定事件和引用:

$(".slider").slider(); 

$("body").on("click", "a", function(event) {
    event.preventDefault();

    var htmlContent = $( $(this).attr("content") ).contents();

    $("div#body").html(htmlContent);
});

您正在序列化HTML,因此旧元素都将被销毁,然后在新位置重新构建

与其调用以获取字符串形式的HTML,不如调用。这将返回实际元素,并保留所有绑定事件和引用:

$(".slider").slider(); 

$("body").on("click", "a", function(event) {
    event.preventDefault();

    var htmlContent = $( $(this).attr("content") ).contents();

    $("div#body").html(htmlContent);
});