0

我有 jquery 对话框,当我单击该按钮时,它会打开,但只有在我第一次关闭它并第二次单击同一个按钮时,它才会出现。这是我的代码:

脚本:

$(function () {
    $("#dialogPicture").dialog({
        autoOpen: false
    });    

    $(".buttonClass").on("click", function () {

        // get the div element with the id dialogClass contained at the same scope as button!    

        var id = ($(this).siblings(".dialogClass").attr("id"));
        $("#" + id).dialog({
            autoOpen: false
        });
        $("#" + id).dialog("open").css({
            "font-size": "13px"
        });    
    });    
});

HTML:

<td>
   <?=$row['NOMER']?><input id="btn2" class="buttonClass" type="button" value="ВИЖ" />
   <div class="dialogClass" id="dialogPicture_<?=$row['NOMER'];?>" style="display:none;">
      <table class="bilet">
         <tr>
            <h2>
               <td colspan="4">
                  <div align="center"><strong>ПРЕВОЗЕН БИЛЕТ</strong></div>
               </td>
            </h2>
         </tr>
         <p>
            <tr >
         <td colspan="2" align="right">
      </table>
   </div>
4

2 回答 2

0

你可以试试这个。

您应该使用此代码销毁按钮部分中的对话框

   $("#TestMenuDialog").dialog("close").dialog("destroy").remove();

 var NewDialog = $('<div id="TestMenuDialog"><p style="color:Red;style="font-size:7x;font-weight:normal">' + Message + '</p></div>');
        NewDialog.dialog({
            modal: false,
            title: "Test Dialog",
            height: 200,
            width: 375,
            show: 'clip',
            hide: 'clip',
            buttons: [
                  { text: "OK", click: function () { $(this).dialog("close").dialog("destroy").remove(); } }
            ]
        });

检查 Jfiddle 链接它工作正常

http://jsfiddle.net/zpP3c/1/

于 2013-09-03T06:53:53.497 回答
0

我认为问题在于在每个按钮上单击您都会创建一个新的对话框实例。
尝试在脚本开头初始化所有对话框并让按钮只打开它们。
另一个问题是初始化后对话框div不再在桌面上:
<div id="btn<?=$row['NOMER']?>"......

        $(function () {
            $(".dialogClass").each(function(){
                $(this).dialog({ autoOpen: false });
            }); 

                $(".buttonClass").on("click", function () {

                // get the div element with the id dialogClass contained at the same scope as button!    

                var btnId = ($(this).attr("id"));
                btnId = btnId.replace("btn","");
                $("#dialogPicture_" + btnId).dialog("open").css({
                    "font-size": "13px"
                });    
            });   
        });
于 2013-09-03T07:23:23.170 回答