0

这是我正在尝试做的一个示例。

<html>
<head>
    <script type="text/javascript" language="javascript">
      function doOpen() {
        if ($('#dialog-modal').dialog('widget') == '')
          document.getElementById('#dialog-modal').style.display = 'block';
        else    
          $('#dialog-modal').dialog('open');
      }

      function doClose() {
        if ($('#dialog-modal').dialog('widget') == '')
          document.getElementById('#dialog-modal').style.display = 'none';
        else
          $('#dialog-modal').dialog('close');
      }     

      function doAttach() {    
        $('#dialog-modal').dialog({
          width: 'auto',
          height: 'auto',
          title: 'Popup Dialog',
          autoOpen: false,
          resizable: false,
          modal: true
        });

        document.getElementById('dialog-modal').style.display = 'block';
      }
    </script>
</head>
<body>
<input type="button" id="Show" value="Open" onclick="doOpen();" />
<input type="button" id="Attach" value="Attach" onclick="doAttach();" />

<div id="dialog-modal" style="display:none">
Show this in a model dialog window<br />
<input type="button" id="Close" value="Close" onclick="doClose()" />
</div>
</body>
</html>

如果我在执行任何其他操作之前单击“附加”,对话框就会显示得很好。但是,如果我先单击“打开”,则会出现错误。我需要知道这条线应该是什么,以确定对话框模式是否已附加到对话框

if ($('#dialog-modal').dialog('widget') == '')
4

2 回答 2

1

很难说出您要做什么,但是您可以使用 data() 查看是否已附加对话框。

if ($('#dialog-modal').data('uiDialog')) {
  alert('dialog attached');
}
于 2013-02-03T03:43:07.623 回答
1

大多数插件在目标 html 元素中添加了一些类和数据。您需要找出他们正在添加的类和数据,而不是像这样

if($('selector').hasClass('classAdded')){
//do something
}

或者

if($('selector').data('dataKey')){
//do something
}

对于课程,您可以简单地在萤火虫屏幕或其他屏幕上看到。要获取他们分配的数据,请使用

alert(JSON.stringify($(selector).data()));
于 2013-02-03T04:28:33.113 回答