Как получить доступ к элементу div, на который ссылается диалоговое окно jquery?

#javascript #jquery #jquery-ui-dialog

#javascript #jquery #jquery-ui-dialog

Вопрос:

У меня есть некоторый javascript-код, который создает диалоговое окно, которое выглядит примерно так:

  $( function () {
    $('.hoverList').dialog({
    autoOpen: false,
    hide: {
        effect: "fade",
        duration: 400
    },
    title: $(this).data("title"),
    modal: false
});};
  

В этом случае на странице может быть несколько элементов класса hoverlist. Проблема, с которой я сталкиваюсь, связана с этой строкой в приведенном выше:

 title: $(this).data("title")
  

В моем pag div, содержащий мое диалоговое окно, выглядит следующим образом:

 <div class='hoverlist' data-title='My Dialog Title'>...</div>
  

Однако, когда выполняется javascript, $(this), возвращаемый в ключе ‘title:’ диалогового окна, ссылается на сам документ, а не на элемент, к которому применяется эта директива диалогового окна, поэтому данные («title») <div> элемента здесь недоступны.

Обратите внимание, что на одной странице может быть несколько списков наведения, поэтому я не могу просто выбрать его по идентификатору вместо класса без повторного создания одного и того же кода. Пытаюсь выяснить, как я могу создать диалоговое окно с заголовком, на который ссылается элемент данных <div> , который я превращаю в диалоговое окно. Как это может быть возможно?

Ответ №1:

Если вы хотите это сделать, то вам нужно выполнить цикл по объекту jQuery selector, чтобы ‘$(this)’ ссылался на текущий узел.

 $( function () {

    $('.hoverList').each(function(){
        $(this).dialog({
            autoOpen: false,
            hide: {
                effect: "fade",
                duration: 400
            },
            title: $(this).data("title"),
            modal: false
        });
    });
});