gpt4 book ai didi

javascript - 动态添加新的 jQuery slider 会导致旧 slider 无法运行。

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:19:42 25 4
gpt4 key购买 nike

这是我的代码:

    newS = "#newS_"+g; //g is a unique number from an id
document.getElementById('finderScroll').innerHTML +='<div id="newS_'+g+'"></div>'
$(newS).slider({
range: true,
min: 0,
max: 500,
values: [ 75, 300 ],
slide: function( event, ui ) {
console.log( ui.values[ 0 ] + ui.values[ 1 ] );
}
});

每个新 slider 都有效,但当我添加另一个 slider 时,之前的 slider 不再起作用。它导致它不再可拖动,即使每个 slider 的所有内容都是独一无二的。有谁知道解决这个问题的方法吗?

最佳答案

通过更新 innerHTML,您实际上让浏览器从头开始重建您的 DOM。请改用 appendChild,这将保留事件处理程序和附加到现有元素的数据。

其实我不明白为什么不能这样写:

$('#finderScroll').append($('<div>').attr('id', 'newS_' + g));

... 因为您已经在使用 jQuery。另外,我建议也重写分配器 block :您不需要遍历 DOM 来寻找创建的元素(使用 $(newsG)),因为您可以这样写:

$('<div>').attr('id', 'news_' + g).slider({ ... })
.appendTo($('#finderScroll'));

关于javascript - 动态添加新的 jQuery slider 会导致旧 slider 无法运行。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13993065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com