Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 剑道网格-悬停时获取单元格索引_Javascript_Jquery_Kendo Ui_Kendo Grid_Kendo Tooltip - Fatal编程技术网

Javascript 剑道网格-悬停时获取单元格索引

Javascript 剑道网格-悬停时获取单元格索引,javascript,jquery,kendo-ui,kendo-grid,kendo-tooltip,Javascript,Jquery,Kendo Ui,Kendo Grid,Kendo Tooltip,我正在尝试将kendoToolTip添加到网格上特定列的单元格中。现在,工具提示可以工作,但当鼠标悬停在网格上的任何单元格上时,它会显示出来 我想获得鼠标悬停在上面的项目的特定单元格索引,这样我只能在鼠标悬停在单元格索引9上时显示工具提示 我使用的代码总是将单元格索引返回到-1。我可以让它与onclick事件一起工作,但我无法让它在悬停时工作 任何帮助都将不胜感激 $("#samplerequest-grid").kendoTooltip({ filter: "td",

我正在尝试将kendoToolTip添加到网格上特定列的单元格中。现在,工具提示可以工作,但当鼠标悬停在网格上的任何单元格上时,它会显示出来

我想获得鼠标悬停在上面的项目的特定单元格索引,这样我只能在鼠标悬停在单元格索引9上时显示工具提示

我使用的代码总是将单元格索引返回到-1。我可以让它与onclick事件一起工作,但我无法让它在悬停时工作

任何帮助都将不胜感激

    $("#samplerequest-grid").kendoTooltip({
        filter: "td",
        content: function(e) {
            var grid = $("#samplerequest-grid").data("kendoGrid");
            var dataItem = grid.dataItem(e.target.closest('tr'));
            var rowIdx = $("tr", grid.tbody).index(dataItem);
            var colIdx = $("td", dataItem).index(this); // Always returns -1

            console.log("row:" + rowIdx + " col:" + colIdx + " msg: " + dataItem.sampleStatusMsg);
            return dataItem.sampleStatusMsg;
        }
    });
更新:

谢谢你的回答。它们都会起作用,我可能会改变我的解决方案来使用它们。在看到你的答案之前,我确实找到了自己的解决方案,那就是在单元格中添加一个模板并过滤该id

网格列声明:

{
   field: "sampleStatus",
   title: "Sample Status",
   width: "110px",
   locked: true,
   lockable: true,
   template: "<span id='sampStatus'>#=getValue(sampleStatus)#</span>"
},

查找索引的代码将不起作用,因为您正在dataItem的上下文中搜索td元素。另外,我不认为content函数的上下文是当前单元格。此代码应可用于查找索引:

var row = e.target.closest('tr');                  
var colIdx = $("td", row).index(e.target); 
但IMHO更好的方法是向列单元格中添加一个类,并向筛选器中添加相同的类:

我觉得你把事情搞得太复杂了。您可以通过以下方式获取索引:

  • e.target.index()
    单元格索引
  • e.target.closest('tr')
    行索引
您的
内容
事件应该是:

content: function(e) {
    var grid = $("#samplerequest-grid").data("kendoGrid");
    var tr = e.target.closest('tr');
    var dataItem = grid.dataItem(tr);
    var rowIdx = tr.index();
    var colIdx = e.target.index();

    console.log("row:" + rowIdx + " col:" + colIdx + " msg: " + dataItem.sampleStatusMsg);
    return dataItem.sampleStatusMsg;
}

content: function(e) {
    var grid = $("#samplerequest-grid").data("kendoGrid");
    var tr = e.target.closest('tr');
    var dataItem = grid.dataItem(tr);
    var rowIdx = tr.index();
    var colIdx = e.target.index();

    console.log("row:" + rowIdx + " col:" + colIdx + " msg: " + dataItem.sampleStatusMsg);
    return dataItem.sampleStatusMsg;
}