Kendo ui 知道在使用源/模板绑定时单击了哪个元素吗?
我的HTML:Kendo ui 知道在使用源/模板绑定时单击了哪个元素吗?,kendo-ui,Kendo Ui,我的HTML: <ul style="padding-left: 0px;" data-template="GallaryTemplate" data-bind="source: Job.Images"></ul> <script id="GallaryTemplate" type="text/x-kendo-template"> <li style="display: inline"> <img data-bind=
<ul style="padding-left: 0px;" data-template="GallaryTemplate" data-bind="source: Job.Images"></ul>
<script id="GallaryTemplate" type="text/x-kendo-template">
<li style="display: inline">
<img data-bind="attr: { src: Path }, click: clickHandler" style="width: 50px; height: 75px;" />
</li>
</script>
对于我的通用名为
clickHandler
,如何获取我正在单击的图像的索引?Knockout有一个$index
,剑道的等价物是什么?你得到了e中数据的引用。数据是e
的参数clickHandler
例如:
clickHandler: function(e) {
console.log("data", e.data);
}
请在此处查看:
< > > >编辑< <强> >您也可以考虑将<代码>点击< /COD>处理程序放入Li 元素,然后可以简化LASH H ppppNER提出的解决方案,如<代码> $(E.ReavaTeAccGET).Idx()< /C> >:
模板:
<ul style="padding-left: 0px;" data-template="GallaryTemplate" data-bind="source: Job.Images" id="list"></ul>
<script id="GallaryTemplate" type="text/x-kendo-template">
<li style="display: inline" data-bind="click: clickHandler">
<img data-bind="attr: { src: Path }" style="width: 50px; height: 75px;" />
</li>
</script>
在这里查看:正如OnaBai所说,您可以检查传递给click处理程序的事件;要获取索引,您可以查看用户单击的元素e.target
,然后获取如下索引:
clickHandler: function(e) {
var index = $(e.target).closest("li").index();
}
如果需要数组中的索引而不是元素的索引,还可以执行以下操作:
clickHandler: function (e) {
var index = e.data.parent().indexOf(e.data);
}
()是否有可能获取元素在源数组中的索引?是的,请检查我的编辑或Lars Höppner回答虽然这似乎可行,但可靠吗?UI的过滤或排序是否与模型不同?
clickHandler: function(e) {
var index = $(e.target).closest("li").index();
}
clickHandler: function (e) {
var index = e.data.parent().indexOf(e.data);
}