3

我正在使用handsontable jQuery 插件。当用户停止编辑单元格时,我试图拦截。当您双击一个单元格时,一个带有类的文本区域handsontableInput会出现在该单元格的位置上。

每当用户单击其他地方时,我都会尝试使用 jQuery 获取回调,从而失去了 textarea 的焦点。

这是简单的焦点代码:

$(".handsontableInput").focusout(function () {
    alert("LLL");
});

这是我的小提琴

另外,如果带有handsontable的页面在框架中,并且我在框架外单击,这会起作用吗?

谢谢

4

4 回答 4

10

您应该使用以下.on方法:

$("#exampleGrid").on('focusout','.handsontableInput',function () {
    alert("LLL");
});

JSFIDDLE:http: //jsfiddle.net/edi9999/HEH5C/1/

您的代码的问题是,在执行 时$(".handsontableInput"),它们不是此类的元素,因此该事件未附加到任何元素。

于 2013-07-15T10:05:56.557 回答
3

像这样的委托事件:

$("#exampleGrid").on('focusout',".handsontableInput",function () {
    console.log("LLL");
});
于 2013-07-15T10:05:25.280 回答
2

您需要使用.handsontableInput动态生成的事件委托

$(document.body).on('focusout',".handsontableInput",function () {
    console.log("LLL");
});

演示---> http://jsfiddle.net/HEH5C/2/

于 2013-07-15T10:05:35.643 回答
1

已经有一个实际的事件可以做到这一点。你可以使用它自己的事件:

afterChange (changes: Array, source: String)

尽管此事件的主要描述是“一个或多个单元格更改后触发的回调”,即使没有更改,它也会被调用,只是数组的 andoldValue相同。因此,当编辑结束并失去焦点时调用此事件,这正是您想要的。newValuechanges

有关动手活动的更多详细信息,请查看此处

于 2013-07-16T04:09:11.333 回答