Манипулировать свойством дочернего элемента

У меня есть следующий элемент строки с прикрепленным к нему событием двойного щелчка.

<tr ondblclick="onLabelDoubleClicked(this)">
   <td><label id="labelId" >My Label</label></td>
   <td><input type="text" id="myInput" data-bind="kendoDropDownList: { data: source, value: myValue, enable: true }" /></td>
</tr>

При двойном щелчке мне нужно установить enable собственностью kendoDropDownList в элементе ввода для переключения true/ false.

JavaScript:

onLabelDoubleClicked = function (event) {

    }

Я искал через event свойства, но не смог найти ничего полезного, чтобы получить enable property и манипулировать этим. Любая помощь с рабочим примером будет принята с благодарностью. Благодарю вас!

2 ответа

Решение

Если вы можете использовать jQuery (а наборы тегов подразумевают это), почему бы просто не использовать методы jQuery (и Kendo)?

$('tr').dblclick(function() {
  var $kd = $(this).find('input').data("kendoDropDownList");
  $kd.enable( $kd.element.is(':disabled') );
});

Вместо встраивания события doubleclick будет проще, если вы поместите обработчик в код JS и переместитесь / измените DOM оттуда.

Я не уверен насчет вещей кендо в data-bind свойство, но для меня это выглядит как строка, так что вам придется делать замену строк, если у вас нет лучшего способа.

попробуй это:

$('tr').dblclick(function() {
    var $el = $(this).find(':text'),
        data = $el.data('bind');
    if (/true/.test(data)) {
        data = data.replace(/true/,'false');
    } else if (/false/.test(data)) {
        data = data.replace(/false/,'true');
    }
    $el.prop('data-bind', data);
});
Другие вопросы по тегам