聚合物核心选择器的挖空自定义绑定处理程序 - 设置'selected'属性未更新元素



绑定处理程序和HMTL。

ko.bindingHandlers.radioGroupChanged = {
    init: function (element, valueAccessor, allBindingAccessor, viewModel, bindingContext) {
        var value = valueAccessor();
        var newValueAccessor = function () {
            return {
                change: function () {
                    var selectedValue = $(element).attr('selected');
                    value(selectedValue);
                }
            }
        };
        ko.bindingHandlers.event.init(element, newValueAccessor, allBindingAccessor, viewModel, bindingContext);
    },
    update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        $(element).attr('selected', valueAccessor()());
    }
}
<paper-radio-group style="position:absolute; left:160px; top:0px;" data-bind="radioGroupChanged: MessagePriority" }">
    <paper-radio-button label="High">
    </paper-radio-button>
    <paper-radio-button label="Medium">
    </paper-radio-button>
    <paper-radio-button label="Low">
    </paper-radio-button>
</paper-radio-group>

当它点击更新功能时,如果我手动更新无线电组元素的选定属性,它会立即变为"选择"。

$(element).attr('selected','0');

则$(element).attr("selected")始终为"selected"。

我不知道为什么它没有保留价值。

selected属性并不意味着指示选择了哪个元素,而只是描述初始状态。DOM元素上的实际selected属性包含此信息。因此,在您的情况下,您将执行以下操作:

element.selected = valueAccessor();

或读取:

if(element.selected == 1) alert("Yeah Medium was selected");

希望能有所帮助。

相关内容

  • 没有找到相关文章

最新更新