Jquery模式对话框仅在第一次单击时显示

时间:2012-07-10 11:18:40

标签: jquery jquery-ui onclick jquery-ui-dialog

以下代码仅适用于第一次单击事件。但是对于任何后续点击都没有任何反应。

<input type="submit" name="add" value="Add it" onClick="javascript:Add(); return false;">

function Add()
{
   $(function(){
    var dialogOpts = {
        width: 880,
        height: 270,
        minWidth: 880,
        minHeight: 270,
        maxWidth: 890,
        maxHeight: 300
    };
    $("#add").dialog(dialogOpts);
    });
 }

如果我从:

删除return false
<input type="submit" name="add" value="Add it" onClick="javascript:Add(); return false;">

我让它适用于Firefox,但在IE8中,窗口会显示一到两秒钟,然后它就会消失(缓存清理完毕)。

我在这个网站上似乎有很多关于这个问题的例子,但我担心我对jquery应用它们太新了:(

非常感谢

2 个答案:

答案 0 :(得分:2)

写这个来实例化你的对话:

$(function(){

    $diag = $("#add");
    var dialogOpts = {
        width: 880,
        height: 270,
        minWidth: 880,
        minHeight: 270,
        maxWidth: 890,
        maxHeight: 300,
        autoOpen: false
    };
    $diag.dialog(dialogOpts); // This instantiates the dialog once.
    //And then add this eventhandler:
    $("input[name='add']").click(function(){
       $diag.dialog('open');
    });
});

并删除所有内联onclick内容 - 尽可能避免使用...

答案 1 :(得分:0)

你想要删除一些代码:)“javascript:”是没有必要的

<input type="submit" name="add" value="Add it" onClick="Add();">

并且不需要dom ready部分

function Add()
{
    var dialogOpts = {
        width: 880,
        height: 270,
        minWidth: 880,
        minHeight: 270,
        maxWidth: 890,
        maxHeight: 300
    };
    $("#add").dialog(dialogOpts);
 }