3

在这段代码中:http://jsfiddle.net/PDwBF/1/
链接到谷歌不起作用。如何修复它?

<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

一种选择是返回 true;从您的 SetCurrent 方法中,这将允许默认操作继续进行:http: //jsfiddle.net/rniemeyer/PDwBF/3/

感谢rpn https://groups.google.com/group/knockoutjs/browse_thread/thread/6ef1081249377728

于 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 回答