jQuery弹出窗口不会在点击时打开

时间:2013-02-09 09:49:08

标签: jquery asp.net

我已经实现了一个jquery弹出

作为

<script type="text/javascript">
        $(document).ready(function () {
            $("input[id$=btnclick]").click(function () {
                if ($("#content").html() != "") {
                    AlertDialog($("#content").html());
                }
            });
        });

        function AlertDialog(msg) {
            $.modaldialog.success(msg, {
                width: 400,
                height: 100
            });
        }
//        $(document).ready(function () {
//            if ($("#content").html() != "") {
//                AlertDialog($("#content").html());
//            }
//        });
    </script>

<asp:Button ID="btnclick" runat="server" Text="click me"   />

在document.getready上正确打开弹出窗口 但点击弹出窗口没有打开。谢谢你的帮助

3 个答案:

答案 0 :(得分:2)

我看到您将点击放在输入上,输入回发,可能您需要使用e.preventDefault();来阻止它:

    $(document).ready(function () {
        $("input[id$=btnclick]").click(function (e) 
        {
            if ($("#content").html() != "") {
                // here prevent from post back
                e.preventDefault();

                AlertDialog($("#content").html());
            }
        });
    });

测试:http://jsfiddle.net/TwFX5/2/

答案 1 :(得分:0)

在您的属性选择器中:

$("input[id$=btnclick]")

你错过了内在的引语:

$("input[id$='btnclick']")
             ^        ^

您的JavaScript很好:http://jsfiddle.net/pf9PW/1/with或没有内部引号(尽管)应该拥有它们。

答案 2 :(得分:0)

有一件事我会说,如果你有一个id,直接使用它,不要在所有输入中查找id。它只会增加浏览器的开销。所以不要使用

$("input[id$=btnclick]").click(function () {
    if ($("#content").html() != "") {
        AlertDialog($("#content").html());
    }
});

使用

$("#btnclick").click(function () {
    if ($("#content").html() != "") {
        AlertDialog($("#content").html());
    }
});

除非我们看到整个情况,否则无法解决您的问题。并尝试避免在函数中进行多次调用。而不是做

if ($("#content").html() != "") {
    AlertDialog($("#content").html());
}

待办事项

var markup = $("#content").html();
if (markup != "") {
    AlertDialog(markup);
}

优化代码是保护和加快应用程序安全的关键。