Kendo ui 知道在使用源/模板绑定时单击了哪个元素吗?

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=

我的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="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);
}