2016-05-30 30 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