取消自定义点击绑定,返回true防止点击劫持

Knockout custom click binding, return true to prevent click hijack?

本文关键字:劫持 true 自定义 绑定 取消 返回      更新时间:2023-09-26

所以我们都知道return true手动将允许对具有click绑定的元素进行默认点击操作,但如果我有如下自定义绑定呢:

ko.bindingHandlers.action = {
    init: function(element, valueAccessor, allBindingsAccessor, context) {
        var options = valueAccessor();
        var params = options.slice(1);
        //wrap it in function, with parameter binding
        var newValueAccessor = function() {
            return function() {
                options[0].apply(context, params);
            };
        };
        ko.bindingHandlers.click.init(element, newValueAccessor, allBindingsAccessor, context);
    }
};

它从绑定中获取N个参数:

action: [handle, 'open', $index()]

如何允许点击通过?handle中的return true在这种情况下不起作用。

您的实际点击处理程序在这里定义:

        return function() {
            options[0].apply(context, params);
        };

只要更改它,它就会返回所提供的子处理程序的值:

        return function() {
            return options[0].apply(context, params);
        };