2013-08-28 55 views
3

我是一個js初學者,這是我的代碼(該照片是不一樣的,但它正是我想要的):jQuery的切換一個在時間與關閉/元素隱藏

 $('#img-expand').click(function() { 
     $("#work-info").slideToggle("slow"); 
    }); 

    $('#img-expand_2').click(function() { 
     $("#work-info_2").slideToggle("slow"); 
    }); 

看看這個:http://jsfiddle.net/vk7AE/1/

我希望當我點擊一個圖像時,會出現與此圖像相關的文字,如果我點擊其他圖像,前面的文字消失,並且與點擊圖像相關聯的新文字出現在它的位置。

事實上,我希望人們可以同時打開一個文本。

我希望你會包括/理解我的問題,並且你將能夠幫助我。

問候。

回答

1
$('#img-expand').click(function() { 
     var slide = $("#work-info").is(":visible"); 

     $(".part-body-opacity p").slideUp(); 
     if(!slide) 
      $("#work-info").slideToggle("slow"); 
    }); 

    $('#img-expand_2').click(function() { 
     var slide = $("#work-info_2").is(":visible"); 

     $(".part-body-opacity p").slideUp(); 
     if(!slide) 
      $("#work-info_2").slideToggle("slow"); 
    }); 

http://jsfiddle.net/vk7AE/5/

+0

謝謝,真的不錯!但我希望當你再次點擊相同的圖片時,文字消失。 –

+0

再次編輯!請嘗試 – Parfait

+0

非常好,順利!非常感謝你 ! :) –

3

DEMO

$('#img-expand').click(function() { 
    $('[id^="work-info"]').hide(); 
    $("#work-info").slideToggle("slow"); 
}); 
$('#img-expand_2').click(function() { 
    $('[id^="work-info"]').hide(); 
    $("#work-info_2").slideToggle("slow"); 
}); 

attribute-equals-selector

^attribute-starts-with-selector

Description: Selects elements that have the specified attribute with 
a value beginning exactly with a given string. 

$('[id^="work-info"]');選擇具有id所有元素開始work-info

OP的評論後更新

DEMO

$('#img-expand').click(function() { 
    $('[id^="work-info"]').not('#work-info').hide(); 
    $("#work-info").slideToggle("slow"); 
}); 
$('#img-expand_2').click(function() { 
    $('[id^="work-info"]').not('#work-info_2').hide(); 
    $("#work-info_2").slideToggle("slow"); 
}); 

.not()

+1

哇感謝它絕對是我所需要的!你是怎樣做的 ?我不明白所有的代碼。 –

+0

@MaadMax檢查更新答案。希望你現在明白了,如果不再問我的話:) –

+0

好的,非常感謝它,它是完美的! :D –