如何读取在jquery幻灯片切换回调函数中设置的变量的值?

时间:2011-09-07 10:01:21

标签: javascript jquery

我希望每个人都做得很好。

我在幻灯片切换回调函数中设置了一个变量。我需要根据这个变量的值执行一些操作。所以,我需要等待在父方法中设置此变量的值。我认为以下代码片段将更好地解释我想要做的事情。

    function() {
        $(this).next().slideToggle('normal',function(){
            if ($(this).is(':hidden')) 
            {
               state = "open";
            }
            else 
            {
               state = "close";
            } 
            isAnimationCompleted=true;
            return true;
    });

          while(isAnimationCompleted==false)
              {             
          //do nothing
              }
          isAnimationCompleted=false;
          var  selectedElement  =$.trim(this.textContent);
            if(state=="open" )
            {
                showHelp(selectedElement,state);
            }

        }

我会真诚地感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

对要跟踪其状态的对象使用$ .data()方法。这样,您希望存储的属性 - 值组合与特定对象相关联。

文档中有一个很好的解释:http://api.jquery.com/jQuery.data/

就你的代码而言,试试这个:

function() {
    // When the page loads, set a default value to the property,
    $("#div_you_toggle").data("open",false);

    $("#div_you_toggle").slideToggle('normal',function(){
        if ($(this).is(':hidden')) 
        {
           $(this).data("open",false);
        }
        else 
        {
           $(this).data("open",true);
        } 
        isAnimationCompleted=true;
        return true;
});

      while(isAnimationCompleted==false)
          {             
      //do nothing
          }
      isAnimationCompleted=false;
      var  selectedElement  =$.trim(this.textContent);  
        if( $("#div_you_toggle").data("open") == true )
        {
            showHelp(selectedElement,state);
        }

    }

肯定会进行一些优化,但这应该引入基本概念。