2011-07-15 10 views
43

私はどのように特定のボタンにクラスを追加するには、次の構文を使用してjQuery Uiダイアログボタン、クラスを追加するには?

How to add multiple buttons in Jquery UI dialog box?

..別のスレッドでこの答えを見つけましたか?あなたは番目のボタンを望んでいた場合

$("#dialog").dialog({ 
    buttons: { 
     'Confirm': function() { 
      //do something 
      $(this).dialog('close'); 
     }, 
     'Cancel': function() { 
      $(this).dialog('close'); 
     } 
    }, 
    create:function() { 
     $(this).closest(".ui-dialog") 
      .find(".ui-button:first") // the first button 
      .addClass("custom"); 
    } 
}); 

:API経由でこれを行うための素晴らしい方法がありますようにそれが見えない

$("#mydialog").dialog({ 
     buttons: { 
     'Confirm': function() { 
      //do something 
      $(this).dialog('close'); 
     }, 
     'Cancel': function() { 
      $(this).dialog('close'); 
     } 
     } 
    }); 
+13

...ラフワイアウイスキーとキューバのシガー。 – rockerest

+1

@rockerest:あなたはちょうど私の一日を作った。 Laphroiag 10年シングルマルトはスコッチに行くのです。 –

答えて

46

、しかし、あなたはcreateのイベントハンドラのクラスを追加することもできます、あなたが使用できます。

$(this).closest(".ui-dialog").find(".ui-button").eq(1).addClass("custom") // The second button 

キーは、ダイアログ内のボタンを選択します$(this).closest(".ui-dialog").find(".ui-button")、です。その後、任意のセレクタを適用することができます(:contains(...)など)。ボタンの順序ではなくテキストを基にボタンを選択すると便利です。ここで

は例です:http://jsfiddle.net/jjdtG/

も適用したいスタイル(S)のためのCSSセレクタが適用されるスタイリングためにはjQueryUIの組み込みセレクタより具体的なければならないことに注意してください。

open: function(event) { 
    $('.ui-dialog-buttonpane').find('button:contains("Cancel")').addClass('cancelButton'); 
} 

きれい、ケーキの簡単な、一片:

+1

+1これは素晴らしいですが、同じダイアログを数回開いて閉じるので、 'create'ではなく' open'を使いました。 – rg89

+0

.dialog({dialogClass: "custom"、...})はドキュメント内でそれを行う方法です。 – Popnoodles

+0

@popnoodles:これはかなり古い答えです。それはおそらく*今日はそれを行うのが好ましい方法です。 –

7

は、オープンイベントハンドラを使用してください!

+2

i18nを忘れないでください!この方法は、ウェブサイトが複数の言語をサポートしている場合は機能しません。 –

+1

ボタンの文字列を言語の値に置き換えた場合、i18nを尊重することができます。必要に応じてセレクタを変更することもできます。 i18nはOPの質問の一部ではありませんでした。そして、ほとんどの開発者にとって、これは主に端的なケースです。 – bpeterson76

+0

@ bpeterson76:おそらく、Oracleのほとんどの開発者が、米国外のi18nが主な関心事です...通常、「特別な」日付形式を使用しないサイトに対処できない米国のユーザーの場合。 –

80

あなたは

$('#mydialog').dialog({ 
    buttons:{ 
    "send":{ 
     text:'Send', 
     'class':'save' 
    }, 
    "cancel":{ 
     text:'Cancel', 
     'class':'cancel' 
    } 
    }); 

で、私はこれがあなたのために働くだろうと思い...ボタンのダイアログ内にクラスを追加することができます。あなたはより多くの答えhereを見つけることができます。

+1

は、あなたのUIバージョンが比較的新しい場合にのみ動作します.... – bpeterson76

+3

"class"という単語を "class"に変更する必要があります – kajo

+0

これは動作しますが、Netbeansのような多くのIDEでエラーが発生し、上記の方法を選択してボタンを見つけてクラスを追加します。 – streetlight

36

希望すると助かります!

$("#mydialog").dialog({ 
      buttons: { 
      'Confirm': function() { 
       //do something 
       $(this).dialog('close'); 
      }, 
      "Cancel": { 
        click: function() { 
         $(this).dialog("close"); 
        }, 
        text: 'Cancel', 
        class: 'custom-class' 
       } 
      } 
     }); 
+0

は、click、text、&classの例をまとめたものです。 – pymarco

+0

これは役に立ちます。私はjqueryクラスを追加することを望むが、最初にそれを挿入しないでください。 – nacho4d

関連する問題