2014-10-05 30 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