3

このコードでは:http://jsfiddle.net/PDwBF/1/google
へのリンクは機能しません。それを修復する方法は?

<ul data-bind="foreach: Items">
    <li data-bind="click: $root.SetCurrent">
        <p data-bind="text: id"></p>
        <div>
            <a href="http://google.com" target="_blank">Go to google</a>
        </div>    
    </li>
</ul>    

function ViewModel() 
{ 
  var self = this;
  self.SelectedItem = ko.observable();
  self.Items = ko.observableArray([]);
  self.SetCurrent = function(item) 
  {
      self.SelectedItem(item);
  };
};  

var vm = new ViewModel();
ko.applyBindings(vm); 

vm.Items.push({id: 55});
vm.Items.push({id: 66});
vm.Items.push({id: 77});
4

2 に答える 2

2

1 つのオプションは true を返すことです。SetCurrent メソッドから、デフォルトのアクションを次のように進めることができます: http://jsfiddle.net/rniemeyer/PDwBF/3/

https://groups.google.com/group/knockoutjs/browse_thread/thread/6ef1081249377728に感謝しますrpn

于 2012-05-24T13:09:49.973 に答える
0

return true を追加すると、機能します。

例えば

function ViewModel() 
{ 
  var self = this;
  self.SelectedItem = ko.observable();
  self.Items = ko.observableArray([]);
  self.SetCurrent = function(item) 
  {
      self.SelectedItem(item);
      return true;
  };
};
于 2013-03-26T20:27:31.187 に答える