【发布时间】:2017-07-25 07:15:19
【问题描述】:
我正在尝试循环这 3 个图像,然后是它们的 ul 和 li。单击后,我遇到了一个问题,即事件处理程序没有侦听除第一个图像之外的任何图像。请帮帮我。
JS
var main = function () {
var recipeArray = ['drink', 'firstCourse', 'mainDish', 'dessert'];
var recipeArrayLength = recipeArray.length;
for (var i = 0; i < recipeArrayLength; i++) {
var $checkBoxes = document.createElement('div');
$checkBoxes.setAttribute("class", "checkBoxes");
var $recipePicContainer = document.createElement('span');
$recipePicContainer.setAttribute("class", "recipePicContainer");
function makeRecipePic() {
var recipe = document.createElement("IMG");
recipe.setAttribute("src", "../images/grasshopper-cocktail.jpg");
recipe.setAttribute("class", "recipe");
$recipePicContainer.appendChild(recipe);
}
makeRecipePic();
var mainContainer = document.getElementsByClassName('mainContainer');
mainContainer[0].appendChild($checkBoxes);
var $div = document.createElement('div');
$div.innerHTML = 'CockTails';
$recipePicContainer.appendChild($div);
$checkBoxes.appendChild($recipePicContainer);
var $recipes = document.createElement("ul");
var $checkboxes = document.getElementsByClassName('checkBoxes');
var x = document.createElement("INPUT");
x.setAttribute("type", "checkbox");
}
for (var j = 1; j <= 6; j++) {
var li = document.createElement("li");
li.className = "ingredients";
li.setAttribute("type", "checkbox");
var a = document.createElement("a");
a.innerHTML = "Ingredient " + j;
li.appendChild(a);
$recipes.appendChild(li);
}
var b = document.createElement("li");
li.innerHTML = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
li.className = "Instructions";
$checkboxes[0].appendChild($recipes);
$('.recipes').hide();
$('<input type="checkbox" value="1" />').prependTo(".ingredients");
$('.mainContainer .recipePicContainer').click(function () {
$(this).next('ul').toggle("slow").toggleClass('selected');
});
};
$(document).ready(main);
【问题讨论】:
-
您的事件处理程序在每次图像点击时监听事件,您的内部逻辑错误,请将 console.log() 或 alert 放在点击处理程序函数中
-
嘿@Nitin,我试试thanx!
标签: javascript jquery html for-loop dom