1

checkedそれ自体がバインドされているアンカータグ内にあるチェックボックス入力にバインドしようとしていますclick

これが完全に有効ではない可能性があることは承知していますが (インタラクティブなコンテンツはアンカー タグの子孫ではない可能性があります)、意図したとおりに機能させたいと考えています。

現在、外部clickイベントのみが処理され、クリックがチェックボックスに到達することはありません。

私が達成しようとしているものの例はここにあります: http://jsfiddle.net/fzmppu93/2/

KnockoutJS のドキュメントに目を通して、clickBubble: trueアンカー タグのclickバインディングを試してみましたが、役に立ちませんでした。

興味があれば、使用例はリンクを含む順序付けられていないリストです。これらの「リンク」のそれぞれには、テレビ番組に関する情報 (タイトル、俳優、画像、概要) が含まれています。ショーは選択可能ですが、見たものとしてマークしたり、スターを付けたりするための「クイックアクション」もあります。

アンカータグ内でチェックボックスを機能させる別の方法はありますか?

4

1 に答える 1

2

「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();
                    }
                });
            }
        }
    };

そして、これがあなたの例の実用的なフィドルです。

于 2015-07-02T08:27:23.353 に答える