簡體   English   中英

jQuery slideDown只工作一次

[英]jquery slideDown only works once

我正在使用jquery進行下拉菜單。 該代碼在頁面首次加載時運行良好。 但是,對於每個菜單項,slideDown(單擊功能的必要部分)最多只能工作一次。 這是一個js小提琴示例http://jsfiddle.net/74ser/ 任何幫助將不勝感激。

$(document).ready(function() {
        $('.options').live('click',function() {
            console.log(this);
            var current = this.innerHTML;
            var list = listOfeverythingBut ("options", this);
            console.log(list);
            var stringA = new Array() ;
            var stringUl = new Array();
            for (var i =0; i < list.length; i++){
                var item ="."+list[i].innerHTML+"Menu";
                if ( $(item).length === 1){
                     stringA.push("ul"+ item ); 
                     stringUl.push(item + " a"); 
                }
            }
            stringA = stringA.toString();
            stringUl = stringUl.toString();
            console.log(stringA); 
            console.log(stringUl); 
            var currentItem = "." + current + "Menu";
            console.log(currentItem);
            if ( $(currentItem).length === 1){
                console.log("inOf"); 
                var toSlideDown = 'UL' + currentItem;
                console.log(toSlideDown); 
                console.log($(toSlideDown));
                $(toSlideDown).slideDown('medium');

            }
            else {
                $(".bottom").slideUp(20);
                $('.homeContent').delay(30).fadeIn(30);
            }           
            $(stringUl).slideUp('medium');
             moveDiv(this);
            $(stringA).removeClass('press');

            $('.options').removeClass('largeMenuStyle');
            $(this).addClass('largeMenuStyle');

            //setTimeout( function(){moveDiv(this)}, 2000); 
        });
});

注意:基本代碼在if ( $(currentItem).length === 1) 我知道它會進入if,因為每次我運行代碼時它都會console.logs'inOf'。 即使它具有正確的“ toSlideDown”變量,它也不會多次運行。

我已經提到了這些論壇主題,但是還沒有找到答案。

jQuery每次頁面加載僅工作一次-希望它多次運行而不必重新加載頁面

jQuery click事件僅工作一次

很抱歉,您的代碼非常棘手,HTML結構非常錯誤。

在以下位置嘗試我的修補程序: http : //jsfiddle.net/jvLJs/1/

 $(toSlideDown + ' a').show();
 $(toSlideDown).hide().slideDown('medium');

我認為這應該有所幫助,盡管這是一個老問題。 我一直遇到相同的問題,我到處搜索以找到解決方案,認為我的問題在我的jQuery文件中。 然后,我查看了CSS並發現了問題。...如果您在CSS對象中聲明了transition,則基本上jQuery動畫不起作用。 就是這樣,或者至少這就是解決我的問題的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM