我正在使用jQuery UI爲給定的HTML元素創建一個「按鈕」。我使用Knockout.js來生成html元素(foreach)。knockout.js,jquery-ui,按鈕單擊和參數
但是,我找不到如何將參數傳遞給knockout.js生成項目的click事件的方式。在下面的例子中,稍微靜態的sampleButton工作,但不是itemButton項目。 http://jsfiddle.net/patware/QVeVH/
function ViewModel() {
var self = this;
self.ping = 'pong';
self.items = ko.observableArray([
{ display: 'Cars', id: 1 },
{ display: 'Fruits', id: 2 },
{ display: 'Humans', id: 3 },
{ display: 'Software', id: 4 },
{ display: 'Movies', id: 5 },
]);
}
ko.applyBindings(new ViewModel());
$("#sampleButton").button().data('someData',101);
$("#sampleButton").click(function(e){
alert('clicked sample: [' + $(this).data('someData') + ']');
});
$(".itemButton").button().data('someData',$(this).id);
$(".itemButton").click(function(){
alert('clicked item: [' + $(this).attr('foo') + ']');
});
ping-<span data-bind="text: ping"></span>
<div id="sample">
<div id="sampleButton">
<h3>Sample Button</h3>
<a href="#">Click here too</a>
</div>
</div>
<div data-bind="foreach: items">
<div class="itemButton" data-bind="foo: id">
<h3 data-bind="text:display"></h3>
<a href="#" data-bind="text:display"></a>
</div>
</div>
還使用壞線爲KO-生成的鏈接設置數據,在此行'$( 「itemButton」)。按鈕()。數據( 'someData',$(本).ID );',這裏$(this)將評估爲$(window) – Artem 2012-03-22 23:25:02