Как вызвать диалоговое окно JQuery с помощью кнопки ссылки в asp.net - PullRequest
0 голосов
/ 01 мая 2011

У меня есть диалоговое окно Jquery на моем веб-сайте.Это диалоговое окно предназначено для получения комментариев пользователей.В настоящее время я использую следующий код для выполнения функции Javascript и работает нормально:

**<a href="#dialog" name="modal">Rate this</a>**

<div id="dialog" class="window"></div>
<div id="mask"></div> 

Код Javascript, который вызывается следующим образом:

 $(document).ready(function() {

        //select all the a tag with name equal to modal

        $('a[name=modal]').click(function(e) {
            //Cancel the link behavior
            e.preventDefault();
            //Get the A tag
            var id = $(this).attr('href');

            //Get the screen height and width
            var maskHeight = $(document).height();
            var maskWidth = $(window).width();

            //Set heigth and width to mask to fill up the whole screen
            $('#mask').css({ 'width': maskWidth, 'height': maskHeight });

            //transition effect     
            $('#mask').fadeIn(1000);
            $('#mask').fadeTo("slow", 0.8);

            //Get the window height and width
            var winH = $(window).height();
            var winW = $(window).width();

            //Set the popup window to center
            $(id).css('top', winH / 2 - $(id).height() / 2);
            $(id).css('left', winW / 2 - $(id).width() / 2);

            //transition effect
            $(id).fadeIn(2000);

        });

    });

    //if close button is clicked

    $("input[id$='btnClose']").click(function(e) {
                   e.preventDefault();

        $('#mask').hide();
        $('.window').hide();
    });

Поскольку href делаетнет события щелчка на стороне сервера, мне нужно вызвать JavaScript, используя кнопку ссылки.Я пробовал несколько способов, но не смог получить фактический результат.

В заключение мне нужно изменить этот вызов **<a href="#dialog" name="modal">Rate this</a>** на кнопку «Ссылка», чтобы я мог перехватить событие щелчка.

1 Ответ

0 голосов
/ 01 мая 2011

Вы можете сделать это, используя RegisterStartupScript, который позволяет запускать Javascript в конце вызова на стороне сервера.Пример можно найти здесь> http://www.dotnetcurry.com/ShowArticle.aspx?ID=200

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

Когда страница загружается, вам следует проверить, является ли запрашивающий клиент зарегистрированным пользователем или нет.Если он затем показывает тот же **<a href="#dialog" name="modal">Rate this</a>** и добавляет форму оценки внутри

<div id="dialog" class="window">//Rating stuff goes here</div>

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

Надеюсь, это имеет смысл.

...