Почему моя функция двойного щелчка не открывает диалоговое окно jquery? - PullRequest
0 голосов
/ 04 августа 2011

У меня есть группа DIV с классом dblclickable и DIV с id = "dialog-edit", но когда я дважды щелкаю по DIV, диалоговое окно не открывается. Как так? Хм ... может быть как-то связано с тем, что я не знаю, как "связать" это ... Пожалуйста помоги! СПАСИБО!

<script>
$(".dblclickable").dblclick(function (event) {
    var tagsedit = $("#tagsedit"),
        elnameedit = $("#elnameedit"),
        mngredit = $("#mngredit");
    $("#dialog-edit").dialog({
        autoOpen: false,
        height: 300,
        width: 350,
        modal: false,
        zIndex: 101,
        buttons: {
            "Update Element": function () {
                if ($('#eltypeedit option:selected').text() == "Individual Resource") {
                    $(event.target).html(elnameedit.val() + " " + "<hr />" + mngredit.text() + tagsedit.val());
                }
                else {
                    $(event.target).html(elnameedit.val() + " " + $('#eltypeedit option:selected').text() + "<hr />" + mngredit.text() + tagsedit.val());
                }
                $(this).dialog("close");
            },
            Cancel: function () {
                $(this).dialog("close");
            }
        }
    });
});
</script> 

@mr.nicksta элемент, который я ищу, определенно не был загружен еще при загрузке страницы. Эти DIV, на которые дважды щелкают, чтобы открыть диалоговое окно, являются динамическими - они сами были созданы другим диалоговым окном ... Я думал, что при использовании функции .dblclick функция будет вызываться при двойном нажатии на DIV?

@ crazyarabian Я не хочу, чтобы autoOpen true, потому что мне нужно, чтобы диалог открывался более одного раза. Гораздо не раз. Каждый раз, когда на DIV дважды щелкают.

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

1 Ответ

1 голос
/ 04 августа 2011

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

$(function() {
    //your code here
});
...