2014-10-05 26 views
0

我有代碼,這是否:試圖隱藏()的元件與jQuery

$('.attachment-medium').each(function(){ 
$(this).click(function(){ 
    var gallWidth = $('.gallery').width(); 
    $('.gall-output').toggle().css('width', gallWidth); 
    var url = $(this).attr('src').slice(0,-12) + '.jpg'; 
    $('.gall-output-img').html('<img class="img-responsive" src="' + url + ' "/>'); 
    var imgMeta = $(this).parent().next().html(); 
    $('#gall-output-meta').html(imgMeta); 
}); 
}); 

這產生了覆蓋模式,並顯示一個img withing與類.gall輸出一個div。我創建了一個小<p class="gall-close">close</p>hide().gall-output但它似乎並沒有與此代碼的工作:

$('.gall-close').click(function() { 
    $('.gall-output').hide(); 
}); 

有沒有使用這種.gall關閉隱藏或切換.gall輸出的方式?

感謝您的幫助。

+0

可以分享html樣本 – 2014-10-05 08:55:26

+0

我們需要查看您的HTML。這很可能是因爲JQuery無法通過點擊來遍歷'.gall-output'元素。 – EternalHour 2014-10-05 09:07:51

回答

1

萬一.gall-close在DOM後並沒有添加加載頁面時,您可以使用事件代表團重視的點擊事件:

$(document).on("click", ".gall-close", function(){ 
    $('.gall-output').hide(); 
}); 

而不是$(document)任何靜態父元素可以工作作爲委託事件的容器元素。如果這能解決你的問題,你可以檢查https://api.jquery.com/on/#on-events-selector-data-handler,部分「直營和委託事件」:

「事件處理程序只能綁定到當前選定的元素,它們必須存在於網頁上,您的代碼的時間對.on()的調用「。

+0

完美,謝謝! – user3927582 2014-10-05 10:27:52