jquery ui-dialog проблема с кнопкой подтверждения

Вот некоторый код диалога пользовательского интерфейса Html + jQuery, созданный asp.net для браузера.

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

[Обновление: я изменил "$(".lDel_23").click();" to document.location.href= "javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView_Sections$ctrl1$LinkButton_Delete','')" и он вызвал функцию .. так что проблема, похоже, в том, что триггер щелчка не может правильно работать с href ссылки установлен на метод javascript .. хотя попытка ручного щелчка работает, вызов триггера jQuery click не работает .. имеет ли это какой-либо смысл ???? ]

    <a href="#" id="aDel_23"></a>
    <a id="ctl00_ContentPlaceHolder1_ListView_Sections_ctrl1_LinkButton_Delete" title="Delete" class="lDel_23" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView_Sections$ctrl1$LinkButton_Delete','')"></a>
     <div id="dialog_23" title="Confirm Delete">
           Delete Section [section name]
     </div>

     <script type="text/javascript">
            $(document).ready(function() {
                $("#dialog_23").dialog({
                    autoOpen: false,
                    modal: true,
                    width: 400
                });
                // Link to open the dialog
                $("#aDel_23").click(function(event) {
                    event.preventDefault();
                    $("#dialog_23").dialog({
                        buttons: {
                            'Confirm': function() {
                                $(this).dialog('close');
                                $(".lDel_23").click();
                            },
                            'Cancel': function() {
                                $(this).dialog('close');
                            }
                        }
                    });

                    $('#dialog_23').dialog("open");
                });
            });
    </script>

person a7mad.3ezz    schedule 23.10.2012    source источник
comment
Вы пытались переместить $(.lDel_23).click(); произойти перед $(this).dialog('close'); ?   -  person ORION    schedule 23.10.2012
comment
попробовал, и то же самое, вместо этого попробовал другой код javascript, который перенаправляет на другую страницу, чтобы убедиться, что код работает правильно, это сработало! единственная проблема в том, что щелчок даже не срабатывает после вызова!   -  person a7mad.3ezz    schedule 23.10.2012
comment
Вы имеете в виду, что обработчик кликов сервера не срабатывает? Покажи свою разметку   -  person Yuriy Rozhovetskiy    schedule 23.10.2012
comment
это html-код после его создания, забудьте о разметке сервера, моя проблема - «клиентская сторона»   -  person a7mad.3ezz    schedule 23.10.2012
comment
Вы визуализируете этот скрипт в каждом ItemTemplate?   -  person Yuriy Rozhovetskiy    schedule 23.10.2012
comment
да, Юрий, он изменяет скрипт с идентификатором каждой строки, чтобы все было в правильной форме для безупречной работы HTML, решение таково, как (спасибо) точно сказал Талмарис, все, что мне нужно было сделать, это использовать родной Javascript щелчок триггер вместо функции щелчка jQuery, и это сработало очень хорошо!   -  person a7mad.3ezz    schedule 23.10.2012
comment
@ a7mad.3ezz, на мой взгляд, это не очень хорошее решение - отображать скрипт для диалога с каждым элементом.   -  person Yuriy Rozhovetskiy    schedule 23.10.2012
comment
давайте продолжим это обсуждение в чате   -  person Yuriy Rozhovetskiy    schedule 23.10.2012


Ответы (1)


По-видимому, немного сложнее активировать ссылку на теге «а». Посмотрите, помогут ли эти вопросы: инициировать щелчок по якорной ссылке

В основном измените это: $(".lDel_23").click(); на $(".lDel_23").get(0).click();

person Tallmaris    schedule 23.10.2012
comment
большое спасибо, это сработало отлично .. Хотя мне кажется странным делать это таким образом! - person a7mad.3ezz; 23.10.2012
comment
Да это странно. Разница в том, что левый click() - это код jQuery, а рабочий - обычный Javascript (я имею в виду собственный триггер щелчка элемента). Связанный вопрос и ответы SO дадут вам всю необходимую информацию :) - person Tallmaris; 23.10.2012