我有以下代码:
$('#maincontent img').click(function(){
console.log($(this).attr('src'));
$myFile = $(this).attr('src');
/*$('#gallery').css('height',0);*/
$('#gallery').html('<img src="'+$myFile+'" />');
$('#gallery').fadeIn();
$('#gallery').click(function(){
$('#gallery').fadeOut();
$('#maincontent img').unbind('click');
$('#maincontent img').click(function(){
$myFile = $(this).attr('src');
$('#gallery').append('<img src="'+$myFile+'" />');
$('#gallery img').last().css('display','none').fadeIn();
现在#gallery会在我点击它时淡出。但问题是,由于.unbind('click')
,我无法在$('#maincontent img')
之后再次点击$('#gallery').fadeOut()
。我想我必须在某处再次.bind('click')
。
我以为我只需在两者之间插入一个动作,例如:
$('#maincontent img').hover(function(){
$('#maincontent img').bind('click');
这样我可以在#maincontent img
上悬停后再次点击$('#maincontent img')
。但我无法得到任何回应。我想我只是不知道它需要什么动作才能重新绑定。谢谢!
#maincontent
是加载外部页面的div,它包含一些图像缩略图。 #gallery
是另一个加载#maincontent
图像的div。这是网站:http://stampswebdesign.com/manklei/project3/index.html
答案 0 :(得分:0)
看起来你本质上嵌套了相同的代码块。我正在考虑将其分解为一个功能。即。
var clickEvent = function () {
$('#gallery').fadeOut();
$('#maincontent img').unbind('click');
$('#maincontent img').click(function(){
$myFile = $(this).attr('src');
$('#gallery').append('<img src="'+$myFile+'" />');
$('#gallery img').last().css('display','none').fadeIn();
. . .
$(&#39; #maincontent img&#39;)。点击(clickEvent);
然后按照ajpocus:https://api.jquery.com/off/
的建议使用off()函数这样的东西?
$(&#39; #maincontent img&#39;)。off();