这是我的Jquery代码:
$(document).ready(function() {
$("#accordion").accordion();
$("#addition").click(function() {
var folders = $(".folder").length;
var count = (1 + folders);
var folderName = prompt("Please enter folder name");
var addFolder = ("<div class=folder> </div>");
var addFolderImg = '<img class=folderImg src="folder-icon.png">';
var addFolderName = ("<h3 class=foldName>" + folderName + "</h3>");
var addFolderMenu = ("<div class=folderMenu></div>");
if (folders == 0) {
$("#addition").after(addFolder);
} else {
$(".folder").last().after(addFolder);
}
$(".folder").last().append(addFolderImg);
$(".folder").last().append(addFolderName);
$(".folder").last().append(addFolderMenu);
$(".folderMenu").hide();
});
$(".folderImg").click(function() {
$(this).siblings(".folderMenu").toggle();
});
});
&#13;
出于某种原因,我尝试在.folderMenu上切换的最后一个函数只有在第一个函数中移动整个动作时才有效,尽管不是很完美。在尝试定位通过jquery创建的任何html元素时,我遇到了这个问题。感谢您的时间和精力!
答案 0 :(得分:0)
而不是使用$(".folderImg").click(function() {});
尝试使用$(".folderImg").on('click', function() {});
这将适用于动态添加的元素。
答案 1 :(得分:0)
您必须在第一部分中运行第二部分。您的代码目前将以这种方式执行:
新的.folderImg元素将不会自动应用在步骤2中完成的绑定,因为在您执行绑定时它不存在。绑定某些内容时,将其绑定到现有元素,而不是将来的元素。