1

我已经实现了一个 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 上,弹出窗口正确打开,但单击时弹出窗口未打开。感谢您的帮助

4

3 回答 3

2

我看到您将点击放在输入上,输入会回发,可能您需要使用e.preventDefault();as 来防止这种情况:

    $(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/

于 2013-02-09T09:57:15.740 回答
0

在您的属性选择器中:

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

您缺少内部引号:

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

你的 JavaScript 很好:http://jsfiddle.net/pf9PW/1/或没有内引号(虽然)你应该有它们。

于 2013-02-09T09:58:31.757 回答
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);
}

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

于 2013-02-09T10:22:04.630 回答