2016-02-05 63 views
0

使用鼠標滾輪我有兩個div,其他的一個孩子。 孩子的div是可滾動的,是在父DIV(這是一個地圖)。 但我不能用我的鼠標滾輪滾動div和使用鼠標滾輪使得地圖背後的放大/縮小。當我點擊時,我也有類似的方式,我點擊下面的地圖(除了孩子上的複選框)。無法在滾動DIV

家長

<div id="map" class="map" style="position: relative;"> 

兒童

<div id="legend" class="legend" style="position: absolute; top: 0px; right: 0px; width:300px; z-index: 100;> 
    <div>...</div> 
    <div>...</div> 
</div> 

如何,我可以用我的鼠標滾輪只能在孩子的div任何想法,並不會影響到父DIV?

我想這可能是相關的z-index的,因爲即使當我設置地圖的z指數爲1000,它仍是傳說下方。

注意:地圖是地圖小冊子,以這種方式創建:

var map = L.map('map', { 
    center: [45.81, 9.1], 
    zoom: 15 
}); 

謝謝!

回答

0

您可以使用disableClickPropagationdisableScrollPropagation方法L.DomEvent禁用您的div元素上的點擊/滾動傳播。他們將取消事件,因此它不會通過DOM冒泡:

L.DomEvent.disableClickPropagation(L.DomUtil.get('legend')); 
L.DomEvent.disableScrollPropagation(L.DomUtil.get('legend')); 
+0

感謝您的回答。你的建議奏效了!我可以問你,我的行爲是否正常?頂部的div不應該受到鼠標事件的影響嗎? 順便說一句,現在傳說中的jQuery Mobile的滑塊不能移動。所有這些都可以相關嗎?如果你也有這個答案,我會非常感激:)謝謝! –

+0

不用謝謝需要,你總是歡迎。這是SO的目的。 :)你所經歷被稱爲「[事件傳播(https://www.google.nl/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=event%20propagation%20explained)」,這是正常的行爲。事件總是通過他們的祖先冒出來,直到你停止在鏈中的元素上。否則它將繼續到'body'元素。如果您現在遇到了jQuery滑塊問題,最好發佈一個新問題,評論不適合提出/回答新問題。我會留意一下。 – iH8