.html()および.on()メソッドを使用してdivのコンテンツを置き換えた後、jQuery関数を呼び出す際に問題が発生します。多くのページにアクセスした後、問題の原因は.on()メソッドの使用方法が間違っていることは確かですが、何が問題なのか理解できません。問題は、htmlコンテンツをロードした後にjQueryUIスライダーが機能しないことです。解決策は非常に簡単だと思いますが、同様の問題を抱えている人が何百人もいる間は、正しい答えを見つけることができません。
1つの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>
このjQueryコードを使用して、htmlコンテンツ(およびスライダー)を動的にロードします
$(".slider").slider();
$("body").on("click", "a", function(event) {
event.preventDefault();
var htmlContent = $($(this).attr("content")).html();
$("div#body").html(htmlContent);
});
コードは次の場所にあります:http://jsfiddle.net/zTRFj/1/