我在使用jQuery中的动态元素时遇到了很多问题,我只需要问一个问题。首先,我的系统中的一个小例子:
main.js
$(function () {
renderPlaceList(places);
setupVoting();
}
这两个函数在单独的文件中,renderPlace.js是一个文件,我在这里创建一个新元素。这些元素具有类.option,然后将它们存储在.places div中。到现在为止还挺好。但后来我想在setupVoting()中使用这些元素:
$('.participants .option').each(function () {
...
})
但这似乎不起作用。当我在浏览器控制台中调用代码时,它运行得很好。但是如果它在网站加载时运行,则jQ选择器将找不到元素。渔获物在哪里?
感谢您的时间和答案:)
修改
renderPlaces函数
function renderPlaceList(places) {
var htmlMeetingPlace = "";
into = $(".places");
$(places).each(function(_, d){
htmlMeetingPlace +=
"<div class='option' data-meeting_place_id='" + d.id + "'>" +
"</div>";
});
into.fadeOut('slow',function(){
into.html("");
into.append(htmlMeetingPlace);
into.fadeIn('slow');
});
}
答案 0 :(得分:0)
问题是当renderPlaceList返回时.. $(&#34; .places&#34;)没有形成...因为仍然是淡出...
你可以尝试
function renderPlaceList(places) {
var htmlMeetingPlace = "";
into = $(".places");
$(places).each(function(_, d){
htmlMeetingPlace +=
"<div class='option' data-meeting_place_id='" + d.id + "'>" +
"</div>";
});
into.fadeOut('slow',function(){
into.html("");
into.append(htmlMeetingPlace);
into.fadeIn('slow');
setupVoting(); //here!
});
}