2011-03-03 110 views
1

我有使用jQuery如使脚本:现在jQuery - show()函数可以返回true吗?

$(document).ready(function() { 
    $('a[name=pmRead]').click(function(e) { 
     e.preventDefault(); 

     var pmtext=$(this).parents(".pmMain").find(".pmMain5"); 
    });   
}); 

,我想使用像pmtext.show()函数,并获得真正的,如果该元素是可见的。否则,我想返回FALSE。通过使用show()来获得TRUE/FALSE的任何更改? (或姐妹功能hide())。

回答

5

有一个功能来检查可见性,但它不是show()/hide()

if (pmtext.is(':visible')) { 
    // .... 
} 
0

你可以编写自己的简单函数来检查它是否可见。

注:该函数将jQuery元素作为输入。

function isVisible($element) { 
    return $element.css("display").toLowerCase() != "none"); 
} 
+0

已经有'.is(“:visible”)'和':visible'选择器。 – justkt 2011-03-03 15:46:24

+2

为什么要发明轮子? '$(element).is(':visible')'就是这样! – balexandre 2011-03-03 15:46:24

2

我会建议编写一个自定义函数,如果你需要返回true或false。

function customShow(element) 
{ 
    if($(element).is(':visible')) 
     return true; 

    $(element).show(); 
    return false; 
} 
+0

但是'$(element).is(“:visible”)'已经返回true或false - 为什么要包装它? – justkt 2011-03-03 15:47:09

+0

公平点 - 包装它的唯一理由是根据该元素的可见性执行其他操作。 – 2011-03-03 15:59:12

+1

因为你不能使用':visible'选择器吗? – justkt 2011-03-03 16:15:01

2

为什么不使用下列内容:

pmtext.is(":visible"); 

,将提供一个布尔值,如果是真的它是可见的,假的,如果它不是。换句话说,你可以使用pmtext.is(":hidden");

如果你想要做的东西看得见,尝试:

$(this).parents(".pmMain").find(".pmMain5:visible").hide(); // only finds it if visible 
0

你有没有看了。 toggle()方法?它可以接受一个“showOrHide”参数。

0

<script language="JavaScript">

function menu(bolum) {

if (bolum.style.display =='none') { bolum.style.display='';islem.style.display='';} else {bolum.style.display='none';} }

</script>

<img src="images/biz-arayalim.png" onclick="menu(firmamesajkutusu)" style="cursor:pointer;"> <div name="firmamesajkutusu" id="firmamesajkutusu"></div>

旧系统的javascript所有的div KONTROL功能