Estoy tratando de usar knock-out para enlazar un clic en una fila en una tabla como esta:

<tr data-bind="click: $root.selectItem">

Funciona muy bien. El problema es cuando trato de excluir ciertas columnas de tomar la acción de clic. Yo soy de tener botones editar y eliminar en mi fila y no quiero que la cocción de la selectItem evento click. Me voy a tener que obligar a todos los td quiero a comportarse de esta manera para el evento click o hay una manera más fácil de hacerlo?

Violín aquí: http://jsfiddle.net/blankasaurus/WYKEM/

OriginalEl autor Jason | 2012-01-16

1 Comentario

  1. 20

    Actualización: evitar un enlace personalizado mediante la adición de clickBubble: false como un punto de unión con el click de unión, como se sugirió por Kevin Obee y se muestra en este ejemplo: http://jsfiddle.net/kevinobee/Q25ja/2/

    Original: puede utilizar un enlace personalizado que se ajusta a la click de unión y evita adicionales eventos sucedan. Podría parecer:

    ko.bindingHandlers.clickAndStop = {
        init: function(element, valueAccessor, allBindingsAccessor, viewModel, context) {
            var handler = ko.utils.unwrapObservable(valueAccessor()),
                newValueAccessor = function() {
                    return function(data, event) {
                        handler.call(viewModel, data, event);
                        event.cancelBubble = true;
                        if (event.stopPropagation) event.stopPropagation();
                    };
                };
    
            ko.bindingHandlers.click.init(element, newValueAccessor, allBindingsAccessor, viewModel, context);    
        }
    };

    He aquí un ejemplo: http://jsfiddle.net/rniemeyer/xj7Hs/

    OriginalEl autor RP Niemeyer

Dejar respuesta

Please enter your comment!
Please enter your name here