要在Javascript in循环中关闭的特定于目标的容器
我试图让我的关闭函数(deleteRecipe)要在Javascript in循环中关闭的特定于目标的容器,javascript,jquery,fadein,fadeout,Javascript,Jquery,Fadein,Fadeout,我试图让我的关闭函数(deleteRecipe).fadeOut包围它的容器,而不是底部容器(当前正在发生)。 关闭后,我希望能够单击deleteRecipe中的撤消按钮到.fadeIn什么是.fadeOut JavaScript var main = function () { var mainContainer = document.getElementsByClassName('mainContainer'); var backGroundPic = document.createEl
.fadeOut
包围它的容器,而不是底部容器(当前正在发生)。
关闭后,我希望能够单击deleteRecipe中的撤消按钮到.fadeIn
什么是.fadeOut
JavaScript
var main = function () {
var mainContainer = document.getElementsByClassName('mainContainer');
var backGroundPic = document.createElement("IMG");
backGroundPic.setAttribute("src", "../images/cutting_board.png");
backGroundPic.setAttribute("class","backgroundPic");
$('body').append(backGroundPic);
var recipeArray = ['drink', 'firstCourse', 'mainDish', 'dessert'];
var recipeArrayLength = recipeArray.length;
for (var i = 0; i < recipeArrayLength; i++) {
var $container = $('#container');
var $contentContainer = $('<div class="col-md-12 col-xs-12" id="contentContainer"></div>');
$($container).append($contentContainer);
var $checkBoxesContainer = $('<div class = "checkBoxesContainer"></div>');
var $recipePicContainer = $('<span class = "recipePicContainer"></span> ');
function makeRecipePic() {
var $recipe = $('<IMG class="recipe">');
$recipe.attr('src', '../images/grasshopper-cocktail.jpg');
$($recipe).css('margin-top', '10px');
$($recipePicContainer).append($recipe);
}
var $deleteRecipe = $('<span class="fa fa-times-circle aria-hidden true"></span>');
$($checkBoxesContainer).append($deleteRecipe);
$deleteRecipe.on('click', function () {
$($contentContainer).fadeOut()
$($undoButton).fadeIn()
});
//
//$($deleteRecipe).click(function () {
// $(this).find(contentContainer).fadeOut();
// $($undoContainer).fadeIn();
//});
makeRecipePic();
var $undoContainer = $('<div class="col-md-12 col-xs-12" id="undoContainer"></div>');
$(mainContainer[0]).append($undoContainer);
var $undoButton = $('<button class="fa fa-undo aria-hidden true"></buton>');
$($undoContainer).append($undoButton);
$($undoContainer).hide();
$undoButton.on('click', function () {
$($contentContainer).fadeIn();
$($undoButton).fadeOut();
});
//$($undoButton).click(function(){
// $(contentContainer).fadeIn();
// $($undoContainer).fadeOut();
//});
$(mainContainer[0]).append($contentContainer);
$($contentContainer).append($checkBoxesContainer);
var $div = $('<div></div>');
$div.innerHTML = 'CockTails';
$($recipePicContainer).append($div);
$($checkBoxesContainer).append($recipePicContainer);
var $recipes = $('<ul class = "recipes"></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).append(li);
}
var b = document.createElement("li");
li.innerHTML = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
li.className = "Instructions";
$($checkBoxesContainer[i]).append($recipes);
}
$($recipes).hide();
$('<input type="checkbox" value="1" />').prependTo(".ingredients");
$('.recipePicContainer').click(function () {
$(this).next('ul').slideToggle("slow").toggleClass('selected');
});
};
$(document).ready(main);
var main=函数(){
var mainContainer=document.getElementsByClassName('mainContainer');
var backGroundPic=document.createElement(“IMG”);
backGroundPic.setAttribute(“src”,“image/cutting_board.png”);
backGroundPic.setAttribute(“类”、“backGroundPic”);
$('body')。追加(backGroundPic);
变量recipeArray=[“饮料”、“第一道菜”、“主菜”、“甜点”];
var reciparray长度=reciparray.length;
对于(变量i=0;i);
//var checkbox=document.getElementsByClassName('checkbox');
var x=document.createElement(“输入”);
x、 setAttribute(“类型”、“复选框”);
对于(var j=1;j我要注意的几件事:
实际上,您可以通过jQuery创建元素,也可以使用jQuery在一个步骤中将这些元素保存在内存中,如下所示:
var $container = $('<div class="container"></div>')
你的html是什么?你能提供你页面的html吗?问题可能会发生,因为你正在淡出容器中的undobutton。所以整天都在围绕你的示例工作,但它不起作用。我可以给你发一个提琴吗?只需更新问题。也许在我之前会有其他人提供帮助。当你使用jQuery选择DOM节点时,你可以创建一个特殊的jQuery对象实例,它将具有jQuery可以执行的所有DOM操作方法。与其每次实例化一个新实例,不如使用您保存的变量:var$element=$('.element');$element.hide()
,而不是像您那样再次包装它:$($element)
好吧,我有点从头开始,因为它真的坏了,但如果它能工作,我不介意再做一次
var $container = $('#container')
var $contentContainer = $('<div class="col-md-12 col-xs-12"></div>')
$container.append($contentContainer)
// ... same for checkboxes area
var $deleteRecipe = $('<span class="fa fa-times-circle"></span>')
var $undoButton = $('<button>Undo</button>')
$checkboxes.append($deleteRecipe)
$deleteRecipe.on('click', function () {
$contentContainer.fadeOut()
$undoButton.fadeIn()
})
$undoButton.on('click', function () {
$contentContainer.fadeIn()
$undoButton.fadeOut()
})