Javascript在jquery对话框中执行多次

时间:2011-05-12 10:05:33

标签: javascript jquery-ui-dialog

我试图在#34; jquery对话框中使用javascript代码"我的代码不止一次执行。

简单的例子..

<div id='dialog'>
    <script type="text/javascript">
        $(document).ready(function () {
            console.log('inside'); 
        }); 
    </script>
</div>

<script type="text/javascript">
    $(document).ready(function () {
        console.log('Dialog init');
        $('#dialog').dialog();
    })
</script>

我的输出是:

  1. Dialog init

3 个答案:

答案 0 :(得分:2)

也许这就是你想要的,请cmiiw:)

<div id='dialog'></div>

<script type="text/javascript">
    $(document).ready(function () {
        console.log('Dialog init');
        $('#dialog').dialog();
    })

    $( "#dialog" ).dialog({
      open: function() {
                 console.log('inside');
            }
    });    
</script>

答案 1 :(得分:1)

那么那就有意义了......

jQuery可能会将#dialog的内容定位到某处,内部代码会再次执行。

为什么#dialog框中有JS?是否装有XHR?如果不是:将其移动到剩余的domready代码所在的位置。

您希望在显示对话框时触发事件吗?这就是对话框中有代码的原因吗?如果是这样,那就有事件API:http://jqueryui.com/demos/dialog/#events

答案 2 :(得分:1)

执行以下操作:

<div id='dialog'></div>

<script type="text/javascript">
    $(document).ready(function (){
        console.log('Dialog init');
        $('#dialog').dialog({
            open: function() {
                console.log('inside');
            }
        });
    })
</script>

使用open事件会导致代码在对话框打开时运行,而不是在文档准备就绪时运行。

http://jqueryui.com/demos/dialog/#event-open

相关问题