Как передать класс css кнопке OK диалогового окна в JQuery?

Я новичок в JQuery. У меня есть код для диалога.

$(this.choosePadsContainer).dialog({ 
        title: 'Choose pad locations',
        autoOpen: false,
        modal: true,
        buttons: { "OK": function () {
            //Extract all checked pad locations.
            var checkedPads;
            checkedPads = new Array();
            $(self.padLocationsForActivity + " input:checked").each(function (index, value) {
                checkedPads.push($(value).val());
            });
            //Set selected pad text.
            setSelectedPadText(self.selectedPadsLblIdFormat, $(self.hiddenActivityAreaCode).val(), checkedPads);
            $(this).dialog("close");
        }
        }
    });

Я хочу присвоить кнопке ОК класс css. Как это будет сделано?


person Girish Chaudhari    schedule 28.03.2011    source источник


Ответы (4)


AFAIK это напрямую не поддерживается, но что-то это должно работать:

$(".ui-dialog-buttonset .ui-button", this.choosePadsContainer).addClass("foo");

person Jo-Herman Haugholt    schedule 28.03.2011

Используйте альтернативный синтаксис (массив) для свойства buttons:

$(this.choosePadsContainer).dialog({ 
    title: 'Choose pad locations',
    autoOpen: false,
    modal: true,
    buttons: [
        {
            text: 'OK',
            className: 'myClass',
            click: function () {
                //Extract all checked pad locations.
                var checkedPads;
                checkedPads = new Array();
                $(self.padLocationsForActivity + " input:checked").each(function (index, value) {
                    checkedPads.push($(value).val());
                });
                //Set selected pad text.
                setSelectedPadText(self.selectedPadsLblIdFormat, $(self.hiddenActivityAreaCode).val(), checkedPads);
                $(this).dialog("close");
            }
        }
    ]
});
person Raphael Schweikert    schedule 28.03.2011
comment
+1, @ Рафаэль, я не знал, что это возможно. И это тоже работает, так что спасибо. - person Starx; 28.03.2011

Согласно ответу tvanfosson здесь, вы можете использовать открытый обработчик:

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

E.G.

$(this.choosePadsContainer).dialog({ 
    title: 'Choose pad locations',
    autoOpen: false,
    modal: true,
    open: function(event) {
        $('.ui-dialog-buttonpane').find('button:contains("OK")').addClass('okButton');
    },
    buttons: { "OK": function () {
        //Extract all checked pad locations.
        var checkedPads;
        checkedPads = new Array();
        $(self.padLocationsForActivity + " input:checked").each(function (index, value) {
            checkedPads.push($(value).val());
        });
        //Set selected pad text.
        setSelectedPadText(self.selectedPadsLblIdFormat, $(self.hiddenActivityAreaCode).val(), checkedPads);
        $(this).dialog("close");
    }
    }
});
person Scoobler    schedule 28.03.2011

Я думаю, ты можешь сделать что-то подобное.

$(window).load(function() {
    $("span[class=ui-button-text]:contains('OK')").each(function() {
          $(this).addClass("myClass");
    });
});
person Starx    schedule 28.03.2011