KnockoutJS:内部复选框点击绑定锚标记不可选择

KnockoutJS: Checkbox Inside Click-Bound Anchor-Tag not Selectable

本文关键字:可选择 绑定 内部 复选框 KnockoutJS      更新时间:2023-09-26

我正试图将checked绑定到一个复选框输入上,该复选框输入位于锚标记内,而锚标记本身就是click绑定的。

虽然我知道这可能不是完全有效的(交互式内容可能不是锚标签的后代(,但我仍然希望它按预期工作——即使只是为了理解它

目前,只处理外部click事件,并且单击永远不会到达我的复选框。

我正在努力实现的一个例子如下:http://jsfiddle.net/fzmppu93/2/

在浏览了KnockoutJS文档后,我在锚标记的click绑定上尝试了clickBubble: true,但没有成功。

如果你感兴趣的话,用例是一个包含链接的无序列表——每个"链接"都包含电视节目的信息:标题、演员、图像、简介。该节目是可选择的,但也有"快速动作"将其标记为已观看、主演等。

有没有其他方法可以使复选框在锚标记中工作?

我已经编写了一个类似于"clickBubble"的自定义绑定处理程序,但是mines允许您防止任何事件的传播。

这是绑定处理程序:

ko.bindingHandlers.preventBubble = {
        init: function (element, valueAccessor) {
            var eventName = ko.utils.unwrapObservable(valueAccessor());
            var arr = eventName;
            if (!eventName.pop) {
                arr = [arr];
            }
            for (var p in arr) {
                ko.utils.registerEventHandler(element, arr[p], function (event) {
                    event.cancelBubble = true;
                    if (event.stopPropagation) {
                        event.stopPropagation();
                    }
                });
            }
        }
    };

下面是你的例子。