在div中加载的页面 - Jquery对话框位置仅在第一次

时间:2015-09-19 21:23:59

标签: jquery forms dialog

我遇到了一些奇怪的问题,我似乎无法解决它。希望你们其中一个可以帮助我。

我正在将页面加载到div中(当单击某个链接时)

在这个div(这是一个不同的页面)中,我显示了我的数据库中的一些数据。单击jquery对话框时,您可以编辑输入的数据。提交表单后,将编辑数据并显示编辑的数据。我已经编写了一些代码来将对话框定位到显示的信息中。这只能工作一次......如果我再次尝试编辑数据,则会在默认位置(左上角)打开对话框 - 如果我不将页面加载到div中 - 所以单独加载页面它可以正常工作时间。

我还发现很奇怪我必须在index.php中嵌入jquery脚本才能使它工作,所以不在我使用jquery的页面中。现在进入我的代码

<script>
 $(function(c) {

    $( "#dialog" ).dialog({
      autoOpen: false,
       maxWidth:260,
        maxHeight: 85,
        width: 260,
        height: 85,

        show: {
        effect: "blind",
        duration: 1000
        },
        position: { 
        my: 'left, top',
        at: 'right, top',
        of: $('#opener')
        },
        hide: {
        effect: "explode",
        duration: 1000
        }
    });
    $( "#opener" ).click(function() {
      $( "#dialog" ).dialog( "open" );
    });
    });

<body>
            <?php


            if(!empty($row['voornaam'])){
            ?>
            <div  id="dialog" >Naam<br>
                <p><form method="post"  id="naam"> <input type="text" value="<?php echo $row['voornaam'];?>" name="voornaam"  size="8"/> <input type="text" value="<?php echo $row['achternaam'];?>" name="achternaam"  size="8"/>&nbsp;<input type="submit" value="opslaan" > </form> 
            </div>
        <button id="opener" border="0" color="white"> <?php echo $row['voornaam'] . " " . $row['achternaam']  ;?> &nbsp; <img src="edit.png" width="10" height="10"></button>

        <?php
        } ?>

<script type = "text/javascript">

    $(function(b) {
    $( "#naam" ).on('submit', function(){
    $(this).closest("#dialog").dialog("close");

          // gather the form data
          var data=$(this).serialize();
          // post data
          $.post('members.php', data , function(returnData){
                      // insert returned html 

                      $('#test').load('members.php')
          })

          return false; // stops browser from doing default submit process
    });

    });

    </script>

1 个答案:

答案 0 :(得分:0)

我在{}中放置封闭位置$( "#dialog" ).dialog({之后,由于某种原因,它才起作用。