2016-12-16 15 views
0

Plnkr鏈接 - LINK如何通過下拉列表懸停禁用翻轉/滾動IE

步驟來重現問題 -

  1. 打開IE中的plnkr鏈接
  2. 從下拉式
  3. 將鼠標懸停在下拉菜單上並滾動鼠標

問題 - 所選下拉式值e將開始改變滾動。

預期行爲 - 所選下拉值不應改變,但整個頁面應滾動。

注 -

  1. 這個問題是不存在的鉻,只能在IE中。
  2. 只有在選擇一個值並將鼠標懸停在下拉字段上之後,下拉值纔會更改。

我的代碼:

<!DOCTYPE html> 
<html> 

    <head> 
    <link rel="stylesheet" href="style.css"> 
    <script src="script.js"></script> 
    </head> 

    <body> 
    <div id="wrap"> 
     <select> 
      <option>foo</option> 
      <option>bar</option> 
      <option>baz</option> 
      <option>foo</option> 
      <option>bar</option> 
      <option>baz</option> 
      <option>foo</option> 
      <option>bar</option> 
      <option>baz</option> 
      <option>foo</option> 
      <option>bar</option> 
      <option>baz</option> 
      <option>foo</option> 
      <option>bar</option> 
      <option>baz</option> 
      <option>foo</option> 
      <option>bar</option> 
      <option>baz</option> 
      <option>foo</option> 
      <option>bar</option> 
      <option>baz</option> 
      <option>foo</option> 
      <option>bar</option> 
      <option>baz</option> 
     </select> 
    </div> 
    <div> 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbage garbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    garbagegarbagegarbagegarbagegarbagegarbagegarbagegarbage 
    </div> 
    </body> 

</html> 

更新 -

試過下面 -

<select onChange="if (this.selectedIndex) self.focus();"> 

的onChange但不觸發當用戶選擇相同的值(先前選定的值)。

+1

你做了什麼試圖解決這個問題?在這裏展示你的代碼是一個很好的習慣,你通過格式化代碼中的「鏈接代碼」來欺騙你。 Plunks不是永久性的,沒有這個問題,這個問題沒有意義 – Mikkel

+0

不要試圖欺騙系統。如果它希望你把你的代碼放在問題中,就這樣做。 – jwpfox

+0

你因爲「垃圾垃圾垃圾......」而得到了一個傻笑...... – Jhecht

回答

0

嘗試了各種方案,最終寫angularjs指令爲同 -

guthub link - angular select

用於element[0].blur();刪除焦點從選擇標籤。邏輯是在第二次點擊下拉時觸發這種模糊。

as-select即使用戶在下拉列表中選擇了相同的值,也會被觸發。

DEMO - link

1

這似乎禁用它:

<select onChange="if (this.selectedIndex) self.focus();"> 

在IE6 +作品,但恐怕在低於該版本不支持這個活動。

+0

這可行,但Chrome中的行爲 - 將鼠標懸停在下拉菜單上的頁面停止工作。 –

+0

是的,這個問題會出現。你可以嘗試替換:onChange =「self.focus()」; –

+0

onChange =「self.focus()」;按預期工作。編輯答案,我會接受它 –