6

特定のダイアログにIDを追加するにはどうすればよいですか? ダイアログごとに個別のスタイルを適用し、次のようにしてみます。

var $order_dialog = $("<%= escape_javascript(render('order_mini_site_form', :layout => false)) %>");

var current_dialog = $order_dialog.dialog({
  width: 515,
  height: 575,
  modal: true,
  resizable: false,
  draggable: false,
  title: false,
  autoOpen: true,
  closeOnEscape: false,
  buttons: [
    { text: "Отправить запрос" , click: function() { $(this).find('form').submit();    $(this).dialog('close'); } },
    { text: "Отмена", click: function() { $(this).dialog('close'); } }
  ]
}).parent().find('.ui-dialog-titlebar').remove();


$current_dialog.attr('id', 'awesome_dialog');

しかし、IDなしでbodyタグ内にダイアログが作成され、スタイルを適用できません。

4

4 に答える 4

11

少し遅くなりましたが、これを行う方法は次のとおりです。

$('#placeholderId').dialog('widget').attr('id', 'dialogId');

$('#placeholderId').dialog('widget')は、ダイアログの周囲の <div> を提供します。これは、ID を設定する要素である可能性が最も高いです。

于 2013-04-11T13:34:33.567 に答える
9

css でこの ID を使用するだけの場合は、代わりに css クラスを使用してこれを実現できます。

dialogClassオプションを使用すると、ダイアログに適用されるクラスを指定できますその後、セレクターでこのクラスを使用して、特定のダイアログに別のスタイルを適用できます。

于 2012-07-03T10:24:28.510 に答える
2

サンプルコードの問題は、ダイアログ自体ではなくid結果に を追加していることです。.find('.ui-dialog-titlebar').remove()以下はあなたのために働くはずです。

var $order_dialog = $("<%= escape_javascript(render('order_mini_site_form', :layout => false)) %>");

var current_dialog = $order_dialog.dialog({
  width: 515,
  height: 575,
  modal: true,
  resizable: false,
  draggable: false,
  id: "ololo",
  title: false,
  autoOpen: true,
  closeOnEscape: false,
  buttons: [
    { text: "Отправить запрос" , click: function() { $(this).find('form').submit();                $(this).dialog('close'); } },
    { text: "Отмена", click: function() { $(this).dialog('close'); } }
  ]
})

$current_dialog.parent().find('.ui-dialog-titlebar').remove();
$current_dialog.attr('id', 'awesome_dialog');
于 2012-07-03T10:32:29.950 に答える
0

私は投票された回答に同意しません(個人攻撃ではなく、「汚いハック」の部分に同意しません)。彼は、jquery ダイアログ ボックスに ID オプションがないことは事実ですが、ID が必要であるという結論に達した場合は、次のコードで十分です。私が開発しているツアー ガイド JS は、そのような ID を非常に必要としていました。

// ここでは、動的に挿入されたコンテンツ [たとえば、作成中のもの] が tempstep の ID を持つことを宣言しています。これは、以下の呼び出しで使用され、jQuery ダイアログ ボックスに ID を追加します。

コード :jQuery ('<div id="tempstep"></div>').dialog({

コード :jQuery('#tempstep').parent().attr("id","dialogBox");

于 2013-07-02T18:04:19.800 に答える