我陷入了这样一种情况:我的 DOM 元素是基于动态生成的$.getJSON
该元素的 Javascript 函数不起作用。我将在我的代码中发布一些总体想法,因为我只是在寻找在这种情况下应该做什么的方向。
site.js
包含一般功能,例如
$(document).ready(function() {
$('.element').on('click', function() {
$(this).toggleClass('active');
});
$(".slider").slider({
// some slider UI code...
});
});
在那之后:
$.getJSON('json/questions.json', function (data) {
// generating some DOM elements...
});
我还尝试将所有 site.js 内容包装到函数中refresh_scripts()
并在之后调用它$.getJSON()
但似乎没有任何作用。
首先,您需要使用委托事件处理程序来捕获动态附加元素上的事件。然后你可以调用.slider()
再次在成功处理函数中调用方法,以在新附加的内容上实例化插件。尝试这个:
$(document).ready(function(){
$('#parentElement').on('click', '.element', function() {
$(this).toggleClass('active');
});
var sliderOptions = { /* slider options here */ };
$(".slider").slider(sliderOptions);
$.getJSON('json/questions.json', function(data) {
// generating some DOM elements...
$('#parentElement .slider').slider(sliderOptions);
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)