簡體   English   中英

SlideUp / SlideDown不太起作用

[英]SlideUp/SlideDown not quite working

我有一個功能來切換一個元素:

function toggle(elemName) {
    text = document.getElementById(elemName);
    var isHidden = text.style.display == 'none';
    text.style.display = isHidden ? 'block' : 'none';

    if (text.style.display == 'none') {
        $(text).slideUp();
    }
    else {
        $(text).slideDown();
    }
    return false;
}

我真正需要的是,如果它是隱藏的,則向下滑動,如果它可見,則將其向上滑動,使其消失。

它正在隱藏和顯示,但滑動不起作用。

有什么事嗎

謝謝

您在調用slideUp()slideDown()之前隱藏了元素。

刪除此行,它應該可以正常工作:

text.style.display = isHidden ? 'block' : 'none';

希望能幫助到你 :)

嘗試這個:

function customToggle(elemId) {
    var elem = $('#'+elemId);

    if ( elem.is(':visible') ) { elem.slideUp(); }
    else { elem.slideDown(); }
}

$(document).ready(function() {
    customToggle('myId');
});

並注意在您的示例中$(text).slideUp(); 將不起作用,因為文本將僅返回ID名稱,例如: $('myId').slideUp(); 在jQuery中應該是這樣的: $('#myId').slideUp();

slideToggle是否可以滿足您的需求?

function toggle(elemName) {
    text = document.getElementById(elemName);
    $(text).slideToggle();

}

http://jsfiddle.net/kmd97/heVEE/

參見工作演示http://jsfiddle.net/CAeSD/4/

您的邏輯倒退了,請使用!= 'none'而非== 'none'

也刪除您的行,說這句話:

var isHidden = text.style.display == 'none';
text.style.display = isHidden ? 'block' : 'none';

因此, 工作代碼如下:

function toggle(elemName) {
    text = document.getElementById(elemName);

    if (text.style.display != 'none') {
        $(text).slideUp();
    }
    else {
        $(text).slideDown();
    }
    return false;
}

$("#name").on('click', function(){
                  toggle("txt");
});

暫無
暫無

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

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