Обработка события click на Z-индекса, что слои

У меня есть 2 слоя Z-индекса в приложении Карты, которое я создаю. У меня проблема, когда я нажимаю на слои для увеличения. Обработчик click находится на базовом Z-индексном слое, и я не хочу, чтобы он срабатывал при нажатии элемента управления в вышележащем слое.

проблема в том, что событие возникает независимо от того, что, но свойство originalTarget события не является изображением в базовом слое, когда что-то на верхнем слое щелкнуто. Есть в любом случае менять это?

4 ответов


это называется пузырями событий, и вы можете управлять им с помощью event.stopPropagation() метод (event.cancelBubble() в IE). Вы также можете управлять им, возвращая true / false из обработчиков, вызываемых атрибутами onwhatever для элементов. Это сложная тема, поэтому я предлагаю вам сделать некоторые исследования.

информация: cancelBubble, это происходит


хотя это не решает проблему напрямую, это может быть жизнеспособным обходным путем, пока не появится более подходящее решение.

напишите одну функцию, которая будет называться onClick, и дайте функции достаточно ума, чтобы знать, кто ее вызвал. Затем функция выполняет соответствующее действие, основанное на том, кто нажал на нее. Вы можете отправить ему почти все, что будет уникальным, а затем использовать переключатель.

упрощенный пример :

<html>
<body>

<script type="text/javascript">
function myClickHandle(anID)
{
switch(anID){
case 'bottom': 
      alert("I am on the bottom");
      break;
case 'top':
      alert("I am on the top");
      break;
}
}
</script>

<html>
<div style="z-index:10"><input type=button value='top' onclick="myClickHandle(this.value)"/></div>
<div style="z-index:11"><input type=button value='bottom' onclick="myClickHandle(this.value)"/></div>
</body>
</html>

Я думаю, что лучше всего отсоединить обработчик событий, когда элемент управления перемещается на верхний слой, и когда элемент управления возвращается на нижний слой, вы можете повторно присоединить события.


приоритет элемента, который имеет большой Z-индекс

http://api.jquery.com/event.stopPropagation/