そのため、現在、[保存]と[閉じる]の2つのボタンがあるjQueryダイアログがあります。以下のコードを使用してダイアログを作成します。
$dialogDiv.dialog({
autoOpen: false,
modal: true,
width: 600,
resizable: false,
buttons: {
Cancel: function() {
// Cancel code here
},
'Save': function() {
// Save code here
}
},
close: function() {
// Close code here (incidentally, same as Cancel code)
}
});
ただし、このコードを使用すると、両方のボタンは同じ色になります。 [キャンセル]ボタンを[保存]とは異なる色にしたいのですが。組み込みのjQueryオプションを使用してこれを行う方法はありますか?私はドキュメントからあまり助けを得ませんでした。
作成している[キャンセル]ボタンは事前に定義されたタイプですが、「保存」は自分で定義していることに注意してください。それが問題に関係があるかどうかはわかりません。
任意の助けをいただければ幸いです。ありがとう。
更新:コンセンサスは、ここに旅行する2つの道路があったということでした:
私は2番目のオプションを使用し、jQuery find()メソッドを使用しました:これは:firstまたは:first-child b/cを使用するよりも適切だと思うので、変更したいボタンは必ずしも最初にリストされたボタンではありませんでしたマークアップ。検索を使用して、ボタンの名前を指定し、その方法でCSSを追加できます。私が終わったコードは次のとおりです:
$dialogDiv.dialog({
autoOpen: false,
modal: true,
width: 600,
resizable: false,
buttons: {
Cancel: function() {
// Cancel code here
},
'Save': function() {
// Save code here
}
},
open: function() {
$('.ui-dialog-buttonpane').find('button:contains("Cancel")').addClass('cancelButtonClass');
}
close: function() {
// Close code here (incidentally, same as Cancel code)
}
});
私は再投稿しています 私の答え 同様の質問に誰もそれをここに与えていないようであり、それははるかにきれいできれいです:
別のbuttons
プロパティ構文を使用します。
$dialogDiv.dialog({
autoOpen: false,
modal: true,
width: 600,
resizable: false,
buttons: [
{
text: "Cancel",
"class": 'cancelButtonClass',
click: function() {
// Cancel code here
}
},
{
text: "Save",
"class": 'saveButtonClass',
click: function() {
// Save code here
}
}
],
close: function() {
// Close code here (incidentally, same as Cancel code)
}
});
Openイベントハンドラーを使用して、追加のスタイルを適用できます。
open: function(event) {
$('.ui-dialog-buttonpane').find('button:contains("Cancel")').addClass('cancelButton');
}
私はあなたがそれを扱うことができる2つの方法があると思います:
ダイアログの1つについてfirebugでソースを見ると、次のようになります。
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
<button class="ui-state-default ui-corner-all ui-state-focus" type="button">Send</button>
<button class="ui-state-default ui-corner-all" type="button">Cancel</button>
</div>
したがって、たとえば、いくつかのスタイルを。ui-state-focusに追加することで(送信ボタンに対処することができます(jqueryのスタイルを確実にオーバーライドするために、おそらくいくつかのセレクターを追加します)。
ちなみに、この場合はフォーカスが変更されたときに問題を回避するために2番目のオプションを選択します...
「class」の単語「className」を変更する必要があります
buttons: [
{
text: "Cancel",
class: 'ui-state-default2',
click: function() {
$(this).dialog("close");
}
}
],
ロールダイアログを持つdivを選択し、その中に適切なボタンを取得してCSSを設定します。
$("div[role=dialog] button:contains('Save')").css("color", "green");
$("div[role=dialog] button:contains('Cancel')").css("color", "red");
たぶんこんな感じ?
$('.ui-state-default:first').addClass('classForCancelButton');
生成されたマークアップを調べて、選択したボタンのクラスに注意して、自分でスタイルを設定してみませんか?
それでも機能しない場合は、ページスタイルシートに次のスタイルを追加します
.ui-widget-content .ui-state-default {
border: 0px solid #d3d3d3;
background: #00ACD6 50% 50% repeat-x;
font-weight: normal;
color: #fff;
}
ダイアログボタンの背景色を変更します。
コードが出力するHTMLを見て、ボタンの1つ(または両方)(おそらくidまたはname属性)を一意に識別する方法があるかどうかを確認し、jQueryを使用してその項目を選択し、適用しますそれにCSSクラス。