2011-03-26 112 views
1

我试图通过在另一个div内淡入来加载内联隐藏内容。问题在于,如果有多个具有相同类的隐藏内容的div,我无法防止内容被复制。关于点击事件触发隐藏内容的jQuery问题

这里是更好地了解的jsfiddle:http://jsfiddle.net/EjU7M

任何帮助将提前感谢,谢谢!

+0

因此,当单击'.link'元素之一时,只需要移除* previous *'.remove'元素,并显示* previous *'.hidden'文本? – 2011-03-26 22:17:37

+0

是的,我完全想要,但不影响其他divs。我的意思是,我希望只有当你点击一个.link链接时才会应用该事件。例如,如果你删除额外的.box,.full_text和.link,你可以看到事件运作良好 – 2011-03-26 22:24:22

回答

1

在你的例子中,你使用classname来查询所有元素,你需要遍历dom并匹配链接附近的元素。

$('.link').click(function() { 
    var $box = $(this).prevAll(".box:first"); //find the nearest .box 
    var $remove = $b.find(".remove"); //find the remove in that box. 
    var $text = $(this).prevAll(".full_text:first"); //find the text 
    $remove.stop().animate({ 
     opacity: 0 
    }, 'fast', function() { 
     $remove.remove(); 
     $text.stop().fadeTo('fast', 1).appendTo($box); 
    }); 
    return false; 
}) 

jsfiddle代码示例。

+0

耶!那就是我想要的!非常感谢你。非常友善:) – 2011-03-26 22:42:59

+0

@Mark我的最终代码似乎没有多个.box容器,因为它只需要更新。看到这个代码示例:http://jsfiddle.net/EjU7M/2/有点需要更新.box与显示文本2隐藏的内容,然后某种“关闭”的链接回到原来的.box内容。提前致谢! – 2011-03-27 03:22:46

+0

@Jackson,我认为这是你需要的。 http://jsfiddle.net/markcoleman/EjU7M/3/,只有一个盒子和一种方法来恢复原始文本。 – 2011-03-27 11:49:37