#javascript #jquery
#javascript #jquery
Вопрос:
Если у меня много разделов вокруг страницы, все с разными идентификаторами, а некоторые с одинаковыми классами. Как я могу сказать, что при двойном щелчке в любом месте страницы мне нужно получить идентификатор или класс или что-либо из элемента, на котором я дважды щелкнул?
Например, когда я говорю:
$('div').dblclick(function(){
var x = $(this).attr('id');
});
Могу ли я сказать что-то вроде
$('body').dblclick(function(){
var x = $(this).attr('id');
});
Комментарии:
1. Вы пробовали это?
Ответ №1:
Вы можете получить цель события, которая является элементом, на котором было запущено событие, а затем получить ближайший к нему DIV
$('body').dblclick(function(e){
var x = $(e.target).closest('div').attr('id');
});
Комментарии:
1. Мне не нужен ближайший div, я создал веб-сайт как рабочий стол с пуском и значками… Я хочу использовать dbl, щелкните в любом месте, например, на своем рабочем столе, и если вы откроете папку, чтобы открыть папку с файлами внутри, и если вы откроете значок веб-браузера, чтобы открыть веб-браузер с iframe bla bla и использовать его. Также, если вы нажмете на пустое место, ничего не произойдет. Я хочу, чтобы в dbl щелкните в любом месте, чтобы получить идентификатор того места, где я щелкнул.
2. «ближайший» просто означает, что если вы щелкните дочерний элемент, например, интервал с текстом внутри DIV, он все равно найдет DIV, даже если щелчок произошел на промежутке и т. Д.
Ответ №2:
Вы могли бы рассмотреть возможность регистрации события щелчка в любом <body>
месте элемента и просмотра целевого объекта, чтобы увидеть, что именно было нажато :
$('body').dlbclick(function(e) {
// You can adjust this to suit your needs
var x = $(e.target).attr('id');
});
Или, если вам явно необходимо настроить таргетинг на <div>
элемент относительно этого, вы можете найти ближайший и использовать его идентификатор :
$('body').dlbclick(function(e) {
// You can adjust this to suit your needs
var x = $(e.target).closest('div').attr('id');
});
Комментарии:
1. Я попробую это, я думаю, это то, что мне нужно.
Ответ №3:
Dblclick всплывающие окна событий, чтобы вы могли использовать делегирование событий
$('body').on("dblclick","div",function(){
var x = $(this).attr('id');
});