Knockout自定义点击绑定,返回true以防止点击劫持?

时间:2013-02-27 20:03:54

标签: javascript data-binding knockout.js

所以我们都知道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()]

如何让点击通过? <{1}}中的return true在这种情况下不起作用。

1 个答案:

答案 0 :(得分:2)

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

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

只需更改它,使其返回所提供的子处理程序的值:

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