0

我的网站中有一个 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>** 为链接按钮,以便我可以捕获单击事件。

4

1 回答 1

0

您可以使用 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更改为显示,您未注册,请点击此处注册。

希望它有意义。

于 2011-05-01T12:46:09.993 回答