1 回答
TA贡献1813条经验 获得超2个赞
内联编辑文档说:
on更改(此,文本,html) - 在退出内联编辑模式并已进行更改时执行
使用相当具有误导性。this
因此,第一个参数实际上是元素。
$(".remark").inlineEdit({
type: 'textarea',
onChange: function (elem, text, html) {
// `this` refers to inlineEdit instance plugin
// `elem` is the currently edited element
const c_id = $(elem).attr("data-cid");
alert(c_id); // 14756
}
});
该插件未以预期的“jQuery插件”方式执行。
通常正确编写的插件应该:
将所有方法绑定到元素被调用方,
(对于 Event 方法),第一个参数应始终引用原始事件。
允许开发人员使用关键字引用它以获取本机JS元素,或者在公开的公共方法中执行操作,就像我们对本机jQuery方法的期望一样,并且可以访问事件(即:如果我们使用箭头函数来提取关键字不存在,则很有用)this$(this)currentTargetthis
$someElem.on('click', function(evt) {
const $el = $(this); // what we're used to
});
$someElem.on('click', (evt) => {
const $el = $(evt.currentTarget); // the importance of always passing the Event as first param
});
显然没有在该插件中实现。
添加回答
举报