我如何参考Dom中的模态窗口?

时间:2014-01-08 16:23:12

标签: javascript jquery dom

我从这个网站上获得了数百个援助。谢谢。这是我的第一个问题。 哪个对象是进入Dom的模态窗口(警报弹出窗口)。我该如何推荐?我怎么知道开放还是关闭?像这样:if(alertPopup打开){.. code ...} 我的代码是这个(我使用jQuery):

<script type="text/javascript">
$(document).ready(function(){
     var myButton = $('#mybutton')

     myButton.click(function(){
        if ($('#myinput').val() == '') {
            alert('input Empty!');
        } else {
            // More code.
        }

     });

     $(document).keyup(function(e){
        if (e.keyCode == 13) myButton.trigger('click');
     })
});
</script>

<body>
    <input id="myinput" />
    <button id="mybutton">Show alert</button>
</body>

代码的目的是触发按钮'enter'上的事件'click'。它有效,但当我关闭弹出窗口时,再次使用键'enter',弹出窗口再次出现。我需要在显示弹出窗口时禁用事件“点击”我的按钮或取消绑定触发器操作。 我不想制作自己的模态窗口。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将处理程序移动到其自己的函数,并以编程方式将其绑定/取消绑定到事件:

$(document).ready(function(){
     var myButton = $('#mybutton')

     console.log('whee');

     myButton.click(clickHandler);

     $(document).keyup(function(e){
        if (e.keyCode == 13) myButton.trigger('click');
     })
});


function clickHandler(){
    $('#mybutton').unbind('click', clickHandler)

    if ($('#myinput').val() == '') {
        alert('input Empty!');
    } else {
        // More code.
    }

}

但是,它看起来更像是在尝试以表单提交方式处理输入按钮。我建议将整个事物包装成一个表格,然后处理它。

有关更清晰的基于表单的解决方案,请参阅http://jsfiddle.net/ruBY4/