флажок запуска скрипта onclick перед установкой флажка - PullRequest
0 голосов
/ 24 марта 2012

У меня есть выпадающий список с флажками.Я использую jQuery, чтобы добавить событие Click ко всем флажкам.Когда флажок установлен, сценарий должен запускаться и проверять атрибут установленного флажка, чтобы определить его тип, а затем выполнять соответствующие функции:

function () {
    $('.RcbTag').find('input[type="checkbox"]').click(function () {
        var evtCB = $(this);
        var id = $(this).closest(".rcbSlide").siblings(".RcbTag").attr("id");
        var rcbObject = $find(id);

        rcbObject.get_items().forEach(
        function (item, index) {
            if (item.get_attributes().getAttribute('GUIDType') == 'group' &&
                item.get_checked()) {
                alert("Checked");
            }
        });
    });

Проблема сейчас заключается в том, что кажется, что сценарийвыполняется до того, как флажок фактически установлен на «проверено».Таким образом, в этом примере он проверяет, является ли атрибут item 'group' и проверен ли он.Это всегда возвращает ложь, но вернет истину, когда я уберу галочку.Так что мне не хватает порядка событий здесь.Как мне это исправить?

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

Я думаю, что вы смешиваете обработчики кликов jQuery и код Telerik. Давайте попробуем просто придерживаться событий, санкционированных Telerik, и я думаю, что все будет работать так, как вы ожидаете.

На вашем RadComboBox добавьте обработчик событий, например, так:

OnClientItemChecked = "ComboBoxRowClick" 

Затем объявите функцию JS, как она есть у вас (за исключением того, что мы хотим назвать ее, а не оставлять ее анонимной):

function ComboBoxRowClick(sender, args) {
    if (args.get_item().get_attributes().getAttribute('GUIDType') == 'group' &&
        args.get_item().get_checked()) {
        alert("Checked");
    }
}

Для получения дополнительной информации о функциях на стороне клиента от Telerik, вы можете проверить эту ссылку: http://www.telerik.com/help/aspnet-ajax/listboxitem-client-api.html

Кроме того, вы можете столкнуться с этим небольшим раздражением, когда вам нужно нажать на саму маленькую галочку, а не где-нибудь в строке (как и следовало ожидать). Обойти это можно здесь: http://www.msigman.com/2010/07/telerik-radlistbox-fix/

0 голосов
/ 24 марта 2012

попробуйте использовать change вместо click? таким образом, вы будете ловить изменения, сделанные через keybord. и это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...