私はこのプラグインを気に入っていますが、現実には、ほとんどの人はテキストをクリックして編集できることに最初は気づきません。
理想的には、テキストの横にボタンを追加するか、ユーザーにははっきりと見えるが ajax 経由で送信されることのない単純な [編集] リンクを追加するとよいでしょう。
何か案は?
私はこのプラグインを気に入っていますが、現実には、ほとんどの人はテキストをクリックして編集できることに最初は気づきません。
理想的には、テキストの横にボタンを追加するか、ユーザーにははっきりと見えるが ajax 経由で送信されることのない単純な [編集] リンクを追加するとよいでしょう。
何か案は?
jEditable フィールドをクリックするボタンにイベントを追加するだけです。
<span class="jeditable">jEditable field</span>
<input type="button" class="jeditable-activate" value="Edit me!" />
そしてjQueryでは:
$('.jeditable-activate').click(function() {
$(this).prev().click();
});
それはそれを行う必要があります。結局、それはユーザーが要素をクリックするのと同じことです。
「編集」リンクには、
<a href="#" onclick="$('.editable_textarea').trigger('click');>edit</a>
Sam3kのコメントは役に立ちますが、完璧ではありません。これにより、編集可能なフィールド/ボタンを非表示にする前に、編集ボタンが再表示されます。これを解決するために、代わりにカスタムのonCancelイベントを追加しました。
最初に、新しいイベントのデフォルトを$ .fn.editable.defaultsに追加しました(つまり、onCancel:{})
次に、jquery.jeditable.jsの2つの場所に次のコードを追加しました:(1)エスケープを押すとき、および(2)キャンセルボタンを押すとき。
if ($.isFunction(settings.oncancel)) { settings.oncancel.apply(self); }
それでおしまい。
$("#emailRow span").editable(url, {
type: 'text',
cancel: 'Cancel',
submit: 'OK',
onCancel: function() {
$("#emailEditLink").show();
}
});
オプションを jeditable に追加して、送信ボタンを表示することができます。
$('#editable_field).editable(url...,
{//options
type: 'text',
width: 230, /*input field width*/
style: 'display: inline-block;width:260px', /*form width including input*/
submit: '<span class="inlineEditSave"><img src="/beta/resource/images/icon/icon_save_check.png"/</span>',
...
保存アイコン付きの送信スパンが jeditable フォームに追加されます
Jeditable 1.6.0onblur
では関数にすることができます:
} else if ($.isFunction(settings.onblur)) {
input.blur(function(e) {
settings.onblur.apply(self, [input.val(), settings]);
});
} else {
したがって、ユーザーが編集領域の外をクリックしたときに編集を非表示にする場合は、その機能をコールバックとして設定し、ユーザーがキャンセルを押したときにのみ非表示にする場合はonreset
、コールバックで設定を設定します。