私はこのコードを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 () {
が、うまくいかないようです。