jquery - 如何使用 jQuery 更改元素的可见性?

标签 jquery css visibility

我的应用程序要求用户上传一组必需的文件(上传 #1、上传 #2、上传 #3)。上传完成后,它会返回需求标识符 (req_id)。

该页面会显示要求列表,并且当前会在上传特定元素后将类别从“缺失”更改为“完成”。但是,我还想在上传完成后将“删除”图标的可见性从隐藏更改为可见。

HTML:

<ul>
    <li class="missing" rel="1">
        <span class="link">
            <a href="#" target="_blank">Upload #1</a>
        </span>
        <span class="controls">
            <img src="download.png" class="download" <? if ($req_item['class'] == "missing") { echo 'style="visibility: hidden;"'; } ?> >        
            <img src="trash.png" class="delete" <? if ($req_item['class'] == "missing") { echo 'style="visibility: hidden;"'; } ?> > 
        </span>
    </li>
    <li class="missing" rel="2">
        <span class="link">
            <a href="#" target="_blank">Upload #2</a>
        </span>
        <span class="controls">
            <img src="download.png" class="download" <? if ($req_item['class'] == "missing") { echo 'style="visibility: hidden;"'; } ?> >        
            <img src="trash.png" class="delete" <? if ($req_item['class'] == "missing") { echo 'style="visibility: hidden;"'; } ?> > 
        </span>
    </li>
    <li class="missing" rel="3">
        <span class="link">
            <a href="#" target="_blank">Upload #3</a>
        </span>
        <span class="controls">
            <img src="download.png" class="download" <? if ($req_item['class'] == "missing") { echo 'style="visibility: hidden;"'; } ?> >        
            <img src="trash.png" class="delete" <? if ($req_item['class'] == "missing") { echo 'style="visibility: hidden;"'; } ?> > 
        </span>
    </li>
</ul>

Javascript:

function stopUpload(success, req_id){

    if (success == 1){
        $('#upload_result').html('<span class="msg">Success!<\/span>');
        $("ul li[rel=" + req_id + "]").removeClass().addClass('complete')
        $("ul li[rel=" + req_id + "]").child('.controls').child('.delete').css('visibility','visible')
    }
    else {
        $('#upload_result', window.parent.document).html(
        '<span class="emsg">Error!<\/span>');
    }
    $('#upload_progress').hide();
    return true;

}

最佳答案

要使用 jQuery,替换

$("ul li[rel=" + req_id + "]").removeClass().addClass('complete')
$("ul li[rel=" + req_id + "]").child('.controls').child('.delete').css('visibility','visible')

通过:

$("ul li[rel=" + req_id + "]").removeClass().addClass('complete').find('.controls .delete').show();

但是,您应该为此使用 CSS。所以保留你原来的 jQuery 并将其添加到 CSS:

ul li .controls .delete {
    display: block;
}
ul li.complete .controls .delete {
    display: none;
}

关于jquery - 如何使用 jQuery 更改元素的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8548506/

相关文章:

javascript - 如何使用 jquery 将字符串数据替换为另一个字符串数据?

javascript - 元素值 2 的 jQuery Owl 轮播动画

jquery;-isvisibility 使用visible() 我如何选择第一个可见tr的单选按钮

javascript - jquery背景颜色在滚动时淡入

javascript - 动态表上 jQuery 自动完成的困难

html - 如何将 HTML/CSS 代码插入 iframe?

javascript - 在 div 之间转换时显示加载图标

android - 为什么 FragmentTransaction 偶尔工作?

c# - 将可见性属性绑定(bind)到变量

javascript - bxSlider 背景图像在 chrome 中闪烁