2011-03-26 114 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