【问题标题】:jQuery SlideUp() and SlideDown() in IE 11 doesn't workIE 11 中的 jQuery SlideUp() 和 SlideDown() 不起作用
【发布时间】:2014-11-18 15:52:28
【问题描述】:

我想为我的帮助网站做一些上下滑动的菜单。 我有这个代码:

$(".li_about").click(function(){
    if ($(".ul_about").is(":hidden")) $(".ul_about").slideDown(400);
    else $(".ul_about").slideUp(400);
})

<div id="left-contener">
    <ul id="menu">
        <li class="li_about" style="background-image: url(icons/PNG/color_128/info2.png);"><span>O programie<span> </li>
        <li class="sep_1"></li>
            <ul class="ul_about">
                <li name="about" >Czym jest Creator?</li>
                    <li class="sep"></li>
                <li  name="first">Twój pierwszy obraz</li>
                    <li class="sep"></li>
            </ul>
 etc [...]

#left-contener{
    position:relative;
    z-index: 5;
    width:30%;
    max-width:400px;
    height:calc(100% - 45px);
    background-color: #F8F8F8;
    float:left;
    white-space: nowrap;
    overflow-x: hidden;
    overflow-y:scroll;
    -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
#menu{
    margin-top:10px;
    margin-left:15px;   
}
ul {
list-style:none;
padding:0;
margin:0;
}
li:not(.sep_1):not(.sep){
    height:40px;
    line-height: 40px;
    cursor:pointer;
    background-repeat: no-repeat;
    background-size: 30px 30px;
    background-position: 0px 5px;
    text-indent: 40px; 
}
li:not(.sep):not(.sep_1):hover{
    text-indent:50px;
    color:#16C0FF;
}
.ul_tools,.ul_about,.ul_main{
    display: none;
}

为什么 SlideDown() 和 SlideUp() 在 IE (11) 中不起作用?其他浏览器都可以。

附言。还有一些文字因为 Stackoveflow 说我需要多说一些,但我认为我已经足够解释我的问题了......

【问题讨论】:

  • 唉,恐怕你没有充分解释你的问题。应该发生什么? IE11 上实际发生了什么?您的开发者控制台中会出现哪些错误(如果有)?
  • 你的点击事件被调用了吗?另外,我会使用“.on('click')”事件绑定而不是“.click”
  • @FelipeSkinner .click().on('click') 的缩写
  • @Brewal 我知道...但是如果 AJAX 或其他任何东西正在加载“.li_about”元素,.click() 不会绑定它。然后最好在父元素上使用 .on() 然后使用它的第二个参数来过滤“.li_about”元素:)
  • @FelipeSkinner 是的,它被称为委托:Demo。但是click() 确实on('click') 完全相同,如doc中所述

标签: jquery html css slidedown slideup


【解决方案1】:

你能用 .slideToggle() 吗?这可能是一个愚蠢的问题,但是 jQuery 是否正确加载?

$(".li_about").click(function(){
    $(".ul_about").slideToggle(400);
});

【讨论】:

  • 它适用于其他浏览器......所以它可能已加载。但我们可以期待 IE 的一切
  • 它没有帮助。 jQuery 已正确加载。
【解决方案2】:

你在这行有一个错字:

<li class="li_about" style="background-image: url(icons/PNG/color_128/info2.png);"><span>O programie<span> </li>

你没有关闭你的跨度。这是固定线路:

<li class="li_about" style="background-image: url(icons/PNG/color_128/info2.png);"><span>O programie</span></li>

IE 不像其他浏览器那样对未闭合标签的宽容度,这可能是问题所在。

【讨论】:

  • 修复它,ty。但它没有任何改变,因为其他 li 我没有 span
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多