knockoutjs通过点击事件获取元素id

我正在使用knockoutjs,我目前在我的视图中有一些看起来像这样的东西:

 

这允许我在视图模型中获取元素ID:

 pressedTab = function(tab){ console.log("Element ID: " + tab); } 

这写道:

元素ID:#myTab1

但是,在click事件中发送img id的名称太重复了。 有没有办法在没有明确重写的情况下发送img id?

实际上,您可以通过KO单击处理程序访问事件对象。

  var ViewModel = function() { this.log = function(data, event) { console.log("you clicked " + event.target.id); } }; ko.applyBindings(new ViewModel()); 

http://jsfiddle.net/madcapnmckay/e8JPT/

希望这可以帮助。

madcapnmckay的答案并不完全正确。 你可以更好地使用currentTarget:当你有一个带有嵌套元素的div时,它将返回原始绑定元素而不是子元素。

看到这个问题

更新

正如@Ryan所说 – event.currentTarget不适用于IE8。 对于<= IE8支持,您可以使用:

 var target = (event.currentTarget) ? event.currentTarget : event.srcElement; 

Html绑定

      

js代码

 answerClick: function(c, event){ var element = event.target; var qref = element.getAttribute('Qref'); var click_id = element.id; return true; }