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
}

クラスの場合、firebug 画面または他の画面で簡単に確認できます。彼らが割り当てているデータを取得するには、

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