скрыть / показать класс div - PullRequest
0 голосов
/ 15 июля 2009

Я написал код, чтобы показать элемент div (shareform) при нажатии на ссылку и скрыть его при повторном нажатии на ссылку. У меня есть много форм, под которыми будет отображаться эта ссылка «Поделиться». Если у меня есть только одна форма, этот код работает нормально. То есть изначально элемент «shareform» скрыт, а когда я щелкаю ссылку, он отображается, а когда я снова щелкаю ссылку, «shareform» скрывается.

Если у меня есть 2 формы, элемент shareform для второй формы изначально не скрыт. Разве это не $ ('# shareform'). Hide (); Предполагается скрыть форму для всех ссылок Share?

А также, когда я щелкаю вторую ссылку «поделиться», «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>

EDIT: Извините, на самом деле я хочу скрыть только элемент id share_form, а не класс 'Share', поскольку этот класс ссылается только на ссылку. также я изменил share_form на shareform, он все еще не работает.

РЕДАКТИРОВАТЬ 2:

Хорошо, я изменил id на class, т.е. class = 'shareform'. Теперь класс shareform изначально скрыт. Но если я нажму на ссылку «Поделиться», класс «shareform» будет показан для обеих форм.

Ответы [ 4 ]

2 голосов
/ 15 июля 2009

# на самом деле является сокращением jQuery для «идентификаторов». Чтобы скрыть класс, измените # на., Как в .Share, и повторите попытку.

2 голосов
/ 15 июля 2009

Вы уверены, что присваиваете разные идентификаторы для разных общих дивидендов в разных формах?

Эта строка в вашем вопросе заставляет меня поверить, что вы не:

Если у меня есть 2 формы, класс Share для вторая форма не скрыта первоначально. Разве это не $ ( '# Share_form') скрыть (). полагаю скрыть класс для всех ссылки?

Кроме того, эта строка не будет скрывать класс для div дивидендов, так как вы ориентируетесь только на определенный идентификатор со знаком «#». Для нацеливания на div общего ресурса с классом share вы можете использовать $ ('. Share'). Hide ();

РЕДАКТИРОВАТЬ 2: оба div показывают, потому что вы нацеливаете их обоих на обозначение класса. Вместо этого вы хотите нацелить их индивидуально по идентификатору. Вам нужно изменить эту строку $ (". Share"). Click на $ ("# Share1"). Click, а затем добавить другую функцию для $ ("# Share2"). Click.

2 голосов
/ 15 июля 2009

Для взаимодействия скрытия / затухания я рекомендую использовать функцию Эффекты / Переключение .

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

В приведенной выше строке будет скрыт элемент с id = "share_form", весь элемент формы.

0 голосов
/ 15 июля 2009

Первое, что я вижу, это то, что «share_form» с подчеркиванием, иногда jQuery не может выбрать элемент с подчеркиванием, попробуйте «share-form».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...