我在 HTML 中有这段代码
<div class="details-content">
<p class="biography user_fillable inline_editable" data-id="Biography"></p>
</div>
当用户单击该段落时,它将变为一个文本字段。它是通过插件完成的。
插件代码:
(function ($) {
$.fn.inlineeditor = function (callback) {
var $txt = $('<input type="text" class="inline-editor-text"/>');
return this.each(function () {
var $this = $(this);
$this.on('click', function () {
var _txt = $txt.clone().val($this.text()).insertAfter(this);
$this.hide();
_txt.select()
.on('keydown', function (e) {
if (e.which == '13') {
$this.text(_txt.val()).show();
_txt.remove();
if (callback) {
callback($this.text());
}
} else if (e.which == '27') {
$this.show();
_txt.remove();
if (callback) {
callback(null);
}
}
}).on('blur', function (e) {
$this.show();
_txt.remove();
if (callback) {
callback(null);
}
});
});
});
};
})(jQuery);
用法:
<script>
$(function(){
var $inlineeditable = $('.inline_editable');
$inlineeditable.inlineeditor(function (data) {
var $this = $(this), id = $this.data('id');
if (data != null) {
alert(data);
alert(id);
}
});
});
</script>
我可以获取数据,但不能获取“this”对象。我想得到' this
'对象,相当于:
<p class="biography user_fillable inline_editable" data-id="Biography"></p>
我正在做return this.each(function () {
,但它似乎不起作用。