2009-07-15 229 views
0

我寫了一個代碼,用於在單擊鏈接時顯示div元素(shareform),並在鏈接再次單擊時隱藏它。我有許多窗體,在這個窗體下將顯示這個「分享」鏈接。如果我只有一個窗體,此代碼工作正常。也就是說,最初'shareform'元素是隱藏的,當我點擊鏈接時,它會顯示出來,當我再次單擊該鏈接時,'shareform'被隱藏。隱藏/顯示div類

如果我有2個窗體,第二個窗體的'shareform'元素最初不會隱藏。這不是$('#shareform')。hide();假設隱藏所有共享鏈接的表單?

此外,當我點擊第二個「共享」鏈接時,'shareform'顯示並隱藏在第一個「共享」鏈接。我究竟做錯了什麼?有人能幫我嗎?

var flag=0; 
    $('#shareform').hide(); 
    $(".Share").click(function(){ 
     if(flag==1){ 
      $('#shareform').hide('fast'); 
      flag=0; 
     } 
     else{ 
      $('#shareform').show('slow'); 
     flag=1; 
      return false; 
     } 

    });//.Share click 

    $("#shareform .button").click(function(){ 
     $("#userList option:selected").each(function(){ 
      selected_value[i]=$(this).val(); 
      alert(selected_value[i]); 
      i++; 
     }); 
    }); 

    <li id="Share<?php echo $r['Form']['id']?>"> 
    <a href="#" class="Share">Share</a> 
    <form action="/cake_1_2/forms/share/<?=$formid?>/<?=$userid?>" method="post" name="shareform" id="shareform"> 

    <p>Select the users with whom you want to share the Form</p> 
    <select id="userList" name="userList" multiple> 
    <?php foreach($users as $user){ ?> 
     <option value="<?=$user['User']['name']?>"><?=$user['User']['name'];?></option> 

    <?php }?> 
     </select> 
     <input type="submit" class="button" value="Share"/> 
    </form> 
</li> 

編輯: 對不起,其實我想怎麼把這個類是指單獨的鏈接只隱藏id元素share_form,不是類「分享」。我也改變share_form分享,它仍然無法正常工作。

編輯2:

好吧,我已經改變了ID類,即類= 'shareform'。現在,shareform類最初是隱藏的。但是,如果我點擊「分享」鏈接,則會爲這兩個表單顯示「shareform」類。

+0

一個簡單的建議,以簡化一些事情。爲什麼不設置shareform的CSS來顯示:none而不是使用$('#shareform')。隱藏(); 另一個建議,您是否查看過PHP頁面的源代碼/輸出以確認您使用的是正確的ID?切換shareform ID的可見性應該非常簡單,您應該可以使用$(「#shareform」)來選擇它 – mga911 2009-07-15 07:11:59

+0

根據您的「編輯2」更新,我更新了我的答案。 – mga911 2009-07-15 07:19:43

回答

2

您確定您正在爲不同的表單分配不同的ID給不同的分享div嗎?

這條線在你的問題使我相信你不是:

如果我有2種形式, 第二種形式是不是隱藏 最初的股份類別。是不是這個 $('#share_form')。hide();假設爲 隱藏課所有的分享 鏈接?

此外,該行不會隱藏共享div的類,因爲您只針對具有「#」號的特定ID。要使用類共享來定位共享div,您需要使用$('。Share')。hide();

編輯2:這兩個div都顯示,因爲你是由類指定針對他們兩個。相反,您希望通過ID單獨定位它們。你需要改變這一行$(「。Share」),點擊$(「#Share1」),點擊然後添加另一個函數$(「#Share2」)。

+0

k,我得到我要求的,現在謝謝你.. – Angeline 2009-07-15 10:56:16

2

對於隱藏/淡入淡出的互動我建議您使用Effects/toggle函數。

$('#share_form').hide(); 

上面的代碼行將隱藏id =「share_form」元素的整個表單元素。

2

#實際上是'ids'的jQuery簡寫。要隱藏課程,請將#更改爲.Share,然後重試。

0

我看到的第一件事是「share_form」帶下劃線,有時jQuery不能選擇帶下劃線的元素,請嘗試「share-form」。