web-dev-qa-db-ja.com

動的コンテンツを含むjQueryダイアログ

その場でjQueryダイアログを作成したい。私はこれを使用しています:

var newDiv = $(document.createElement('div')); 
$(newDiv).html('hello there');
$(newDiv).dialog();

私はこれをhtmlヘッダーに持っています:

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.1.custom.min.js"></script>

IE7でJSを実行しようとすると、$(newDiv).dialog()で次のエラーが発生します。 line:オブジェクトはこのプロパティまたはメソッドをサポートしていません。

誰が何が起こっているのか知っていますか?

21
DEH

コードは動作します。テストできます here 、つまり、スクリプトに問題がある可能性があることを意味します。ファイルがjsフォルダーページの横、またはサイトルートからのものである場合は、/js代わりに。

または、 CDNの使用を検討してください

次のように、コードをもう少し効率的にすることができます(これは単なるテストにすぎません)。

var newDiv = $(document.createElement('div')); 
newDiv.html('hello there');
newDiv.dialog();

これは、newDivalreadyjQuery要素であり、毎回オブジェクトを複製する理由がないか、または少し短いためです。

$('<div />').html('hello there').dialog();
59
Nick Craver

ダイアログとそのメッセージを動的に作成する別の方法を次に示します。

     $('<div></div>').dialog({
        modal: true,
        title: "Confirmation",
        open: function() {
          var markup = 'Hello World';
          $(this).html(markup);
        },
        buttons: {
          Ok: function() {
            $( this ).dialog( "close" );
          }
        }
      });  //end confirm dialog

実際にご覧ください: http://jsfiddle.net/DYbwb/

18
Chad Kuehn

コードは良いです、必要なのはjqueryとjquery uiの参照です

<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
0
Leon