1 回答

TA貢獻(xiàn)1813條經(jīng)驗 獲得超2個贊
內(nèi)聯(lián)編輯文檔說:
on更改(此,文本,html) - 在退出內(nèi)聯(lián)編輯模式并已進(jìn)行更改時執(zhí)行
使用相當(dāng)具有誤導(dǎo)性。this
因此,第一個參數(shù)實際上是元素。
$(".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
}
});
該插件未以預(yù)期的“jQuery插件”方式執(zhí)行。
通常正確編寫的插件應(yīng)該:
將所有方法綁定到元素被調(diào)用方,
(對于 Event 方法),第一個參數(shù)應(yīng)始終引用原始事件。
允許開發(fā)人員使用關(guān)鍵字引用它以獲取本機(jī)JS元素,或者在公開的公共方法中執(zhí)行操作,就像我們對本機(jī)jQuery方法的期望一樣,并且可以訪問事件(即:如果我們使用箭頭函數(shù)來提取關(guān)鍵字不存在,則很有用)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
});
顯然沒有在該插件中實現(xiàn)。
添加回答
舉報