При двойном щелчке получить идентификатор

#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');
});