Обработка событий щелчка на z-index'd слоях

В случае, если вам действительно нужен сон () только для того, чтобы что-то проверить. Но имейте в виду, что в большинстве случаев во время отладки браузер вылетает из браузера - возможно, именно поэтому он вам и нужен. В производственном режиме я закомментирую эту функцию.

function pauseBrowser(millis) {
    var date = Date.now();
    var curDate = null;
    do {
        curDate = Date.now();
    } while (curDate-date < millis);
}

Не используйте новую функцию Date () в цикле, если только вы не хотите тратить впустую память, вычислительную мощность, батарею и, возможно, время жизни вашего устройства.

7
задан Robert Cartaino 23 February 2010 в 16:55
поделиться

4 ответа

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

Информация: cancelBubble , stopPropagation

5
ответ дан 7 December 2019 в 10:06
поделиться

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

Напишите единственную функцию, которая будет вызываться 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>
1
ответ дан 7 December 2019 в 10:06
поделиться

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

0
ответ дан 7 December 2019 в 10:06
поделиться

приоритет элемента с большим z-index

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

0
ответ дан 7 December 2019 в 10:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: