2016-05-30 70 views
0

我收藏的代码是:添加一个按钮,进入收藏夹使用JS

var $lightbox = $("<div class='lightbox'></div>"); 
var $img = $("<img>"); 
var $caption = $("<p class='caption'></p>"); 
$lightbox 
    .append($img) 
    .append($caption); 
$('body').append($lightbox); 
$('.gallery li').click(function (e) { 
    e.preventDefault(); 
    var src = $(this).children('img').attr("src"); 
    var cap = $(this).children('img').attr("alt"); 
    $img.attr('src',src); 
    $caption.text(cap); 
    $lightbox.fadeIn('fast'); 
    $lightbox.click(function() { 
     $lightbox.fadeOut('fast'); 
    }); 
}); 

我用它,以显示产品的画廊,当你点击一个产品,用的标题和图像的亮框将显示。我想还添加一个按钮(添加到购物车),但它不工作(灯箱开不起来的话),我改变了代码:

var btn = document.createElement("BUTTON"); 
$lightbox.append($img).append($btn).append($caption); 

请问有什么需要添加或我做错了什么?

回答

1

你的变量是'btn',但是你想追加'$ btn'。调和变量,它应该工作,假设你已经添加了按钮对象的属性... innerHTML et al。

+0

不是'$'只是JQuery的别名?为什么会导致问题?你能解释一下吗? – DAVIDBALAS1

+0

在上下文中,$是传递给append方法的变量名称的一部分。这适用于变量'$ img'和'$ caption',因为您使用前导$定义了这些变量。在你的按钮的情况下,你将变量定义为'btn',但正试图追加'$ btn',这不存在。当您定义变量时,只需将前导$添加到'btn'中,就像您使用'$ img'和'$ caption'一样,并且在这方面您应该很好。该代码应该添加一个空的按钮,您可以为其添加新的文本节点或其他内容元素。 –

+0

噢谢谢你!大。 – DAVIDBALAS1