toggle元素不适用于jQuery

时间:2012-05-17 14:48:22

标签: javascript jquery

我想执行JQuery切换功能(只有在满足某个条件时才切换输入字段以使其可供客户端访问)。 (我正在使用JavaScript测试条件。)我可以这样做吗?出于某种原因,当我在JavaScript函数中设置它时,JQuery切换功能不起作用,所以我不确定我做错了什么,或者根本不能做到这一点。

<script type="text/javascript">
function conditionalToggle()
{
   if (conditionIsMet)
   {
      // JQuery toggle call here
   }
}
</script>

3 个答案:

答案 0 :(得分:3)

您可能没有正确使用jQuery,或者不执行该函数,或者(新jQuery用户最常见的错误)不等待DOM准备就绪:

function foo(){
    if ("foo" === "foo")
        $('#elementId').toggle();
}

$(function(){ // functions inside $() runs after the DOM is ready.
    foo();
});

elementId是元素ID的占位符。
Simple DEMO


请注意,您可以使用此toggle重载:

$('#elementId').toggle(showTheElementOrNot);

toggle( showOrHide )
showOrHide一个布尔值,指示是否显示或隐藏元素。

jQuery docs

答案 1 :(得分:1)

如果在ready()函数内部,jQuery应该可以工作

<script type="text/javascript">
$(function() {
   function conditionalToggle(){
      if (conditionIsMet) {
         $(element).toggle();
      }
   }
});
</script>

或只是这样做:

<script type="text/javascript">
    function conditionalToggle() {
       if (conditionIsMet) {
          element.style.display = element.style.display=='block' ? 'none' : 'block';
       }
    {
</script>

答案 2 :(得分:0)

你可以在DOM准备就绪时做到这一点,如果你还有问题,你也可以这样做:

<script type="text/javascript">
   $(window).load(function() {
        conditionIsMet && $('#elementId').toggle();
   });
</script>