2016-08-18 14 views
0

私はドロップダウンリストを持っており、アイテムを通過するとカーソルがそのオブジェクトの背後にあるオブジェクトに変わります。私はオンラインで見て、これはZオーダーのIEの問題であることがわかりました。私はオプションの背後にあるスパンブロックを使って、別のフォームで見つけたが運がないことを騙そうとしました。助言がありますか?IEドロップダウンリストでのカーソルの変更

<div class="col-110px" id="ItemContainer"> 
    <label class="select-label" for="Item">Item</label> 
    <span>@Html.DropDownListFor(Function(m) m.Item, CType(Model.ItemList, IEnumerable(Of SelectListItem)), New With {.class = ""})</span><span></span> 
</div> 
span { 
    position:relative; 
    z-index:0; 
} 
span span { 
    display:none; 
    content:""; 
    position:absolute; 
    top:0; 
    left:0; 
    right:0; 
    height:100px; 
    background:rgba(255, 0, 0, .25); 
    z-index:-1; 
} 
span select:focus + span { 
    display:block; 
} 
+0

コードを投稿する必要があるようです。 – K48

+0

代わりに質問を編集し、そこにコードを含めてください。コメントから読むことは非常に難しいです。 –

答えて

0

vbhtml

かみそりは、私がこれ以前に投稿する意味が、私は最終的にそれはほとんど...働いてしまいました。誰もがより良い提案を持っている場合、私は私が

より柔軟なスクロールバーの存在とABITは、あなたのJSファイルに既に存在する場合、次の

を追加チェックするために、これをクリーンアップしたい将来的には

を教えてください

function IEDropdownSpan() { 
    //Add span behind drop downs to prevent cursor from changing. IE only 
    //only run if IE or Edge 20+ as it will break in all other browsers 
    var isIE = false || !!document.documentMode; 
    var isEdge = !isIE && !!window.StyleMedia; 

    if (isIE || isEdge) { 
     $("select").each(function() { 
      var $curSelect = $(this); 
      var $parent = $curSelect.parent(); 
      var oldOverflowValue = ""; 

      //This if statement is due to several types of drop downs that do not fit the normal profile 
      if (!($curSelect.parent('span').hasClass('iedropdownspan')) && !$curSelect.is('[class^=chosen]') && !$parent.parent().is('[class^=modal-content]')) { 

       if ($curSelect.parent('span').length === 0) { 
        $curSelect.wrapAll("<span></span>"); 
        $parent = $curSelect.parent(); 
       } 

       if ($curSelect.next("<span></span>".length === 0)) { 
        $("<span></span>").insertAfter($curSelect); 
       } 

       $curSelect.focus(function() { 

        //You can add any conditions here. I had to remove the rest due to company privacy. But this is the level that the overflow has to be hidden on 
        if ($parent.closest("article .content")) { 
         oldOverflowValue = $parent.closest('article .content').css('overflow-y'); 
         $parent.closest('article .content').css('overflow-y', 'hidden'); 
        } 

        if (!$curSelect.parent('span').hasClass('iedropdownspan')) { 
         $parent.addClass('iedropdownspan'); 
        } 

       }); 
       $curSelect.blur(function() { 
        if ($parent.closest("article .content")) { 
         $('article .content').css('overflow-y', oldOverflowValue); 
        } 

        $parent.removeClass('iedropdownspan'); 
        oldOverflowValue = ""; 
       }); 

      } 


     }); 
    } 
} 
関連する問題