我编写了一个代码,用于在单击链接时显示div元素(shareform),并在再次单击链接时隐藏它。我有很多表格可以显示此链接'分享'。如果我只有一个表单,这个代码工作正常。也就是说,最初隐藏'shareform'元素,当我点击链接时,它会显示出来,当我再次点击链接时,'shareform'就会被隐藏。
如果我有2个表单,则最初不会隐藏第二个表单的'shareform'元素。不是这个$('#shareform')。hide();假设隐藏所有共享链接的表单?
而且,当我点击第二个“共享”链接时,“共享形式”会显示并隐藏第一个“共享”链接。我究竟做错了什么?有人能帮助我吗?
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',因为类只引用了链接。我也将share_form更改为shareform,它仍然无效。
编辑2:
好的,我已经将id改为class,即class ='shareform'。现在,shareform类最初是隐藏的。但是,如果我单击“共享”链接,则会显示两个表单的“shareform”类。
答案 0 :(得分:2)
答案 1 :(得分:2)
#实际上是'ids'的jQuery简写。要隐藏课程,请将#更改为。,如.Share,然后重试。
答案 2 :(得分:2)
您确定要为不同形式的不同共享div分配不同的ID吗?
你问题中的这一行让我相信你不是:
如果我有2个表单,则为Share类 第二个表格没有隐藏 原来。不是这个 $( '#share_form')隐藏()。应该 隐藏所有共享的类 链接?
此外,该行不会隐藏共享div的类,因为您只定位带有“#”符号的特定ID。要使用类共享来定位共享div,您需要使用$('。Share')。hide();
编辑2:两个div都显示,因为您按类别名称定位它们。相反,您希望通过ID单独定位它们。你想要改变这一行$(“。Share”)。点击$(“#Share1”)。点击然后为$(“#Share2”)添加另一个函数。点击。
答案 3 :(得分:0)
我看到的第一件事是“share_form”是下划线,有时jQuery无法选择带下划线的元素,请尝试使用“share-form”。