首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Jquery显示/隐藏不起作用

Jquery显示/隐藏不起作用
EN

Stack Overflow用户
提问于 2010-02-24 13:14:04
回答 6查看 23.2K关注 0票数 2

我有这个jquery脚本,它假设根据单击的超链接隐藏/显示div元素。我不知道为什么,但它根本不起作用。下面是我的代码的例外。

代码语言:javascript
代码运行次数:0
运行
复制
function hide_current_commoncontainer(commoncontainer){
   $(commoncontainer).each(function(){
 if(this.is(":visible")){this.hide();} 
 });
}

function init(){
$("#compose_link").bind("click",function(){
 hide_current_commoncontainer(".pmcommoncontainer");
 ("#composer").show();  
 return false;
 }
);

if(Drupal.jsEnabled){  
 $(document).ready(init);
} 

我已经找出了原因,发现是显示/隐藏功能不起作用。rest --函数调用--是正常的。有人能告诉我我哪里做错了吗?我应该在哪里修改我的代码,以便按照我想要的方式隐藏/显示div元素。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-02-24 13:18:05

("#composer").show();this之前,你错过了$

不应该是$("#composer").show();$(this)吗?此外,请确保您已经引入了show/hide的定义

票数 5
EN

Stack Overflow用户

发布于 2010-02-25 03:07:26

好了,我发现了$("#composer").show()不起作用的原因。这是因为我将这些div的可见性样式硬编码为“隐藏”,而jquery的"show“方法无法逆转这一点。奇怪的是,与"show“方法相反,"hide”可以毫无问题地还原硬编码的“可见”样式。因此,要想按照预期隐藏/显示元素,我必须使用隐藏/显示方法组合而不使用可见性样式硬编码,或者使用jquery的css方法并根据需要设置可见性样式。

票数 10
EN

Stack Overflow用户

发布于 2010-02-24 13:25:00

我建议你做像这样的事情

代码语言:javascript
代码运行次数:0
运行
复制
$(function() {
    $('#compose_link').click(function(e) { 
        $('.pmcommoncontainer').children(':visible').hide();
        $('#composer').show();
        e.preventDefault();
    });
});

这将显示id为composer的元素,并在id为compose_link的元素被单击时隐藏类pmcommoncontainer的所有可见子元素。

我认为这就是您想要做的--不需要迭代,因为jQuery使用sets :)。

编辑

看起来你也想要停止点击或发布-通过事件,你可以使用preventDefault()函数来停止该行为。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2323833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档