我正在使用jQuery editinPlace插件,默认的编辑方式是在选择器上使用click事件,但我尝试的方法是通过调用函数“rename();”的上下文菜单。那么如何阻止点击事件的内联编辑。请分享一些关于如何做到这一点的想法...
$('.context').editInPlace({
callback: function(idOfEditor) {
var renameUrl = "http://www.google.com/"+tablerowId+"/"+enteredText+"";
return enteredText;
}
});
答案 0 :(得分:1)
打开/jquery.editinplace.js源文件。 (在线版本> http://code.google.com/p/jquery-in-place-editor/source/browse/trunk/lib/jquery.editinplace.js)
在第一个函数声明$.fn.editInPlace
第26行中,更改以下行:
new InlineEditor(settings, dom).init();
进入>
dom.theEditor = new InlineEditor(settings, dom);
dom.theEditor.init();
dom.data("theEditor", dom.theEditor);
现在,在上下文菜单功能的点击事件中,请调用此>
$("#myContextMenuElement").live("click", function (e) {
//your other code
rename(e); //you need to pass the event argument to it now
});
确保将'e'传递给它。
并在重命名功能>
function rename(e) {
$("#myElementToEditInPlace").data("theEditor").openEditor(e);
}
就像一个魅力!
修改强>
通过单击para本身>确保您不允许用户使用活动编辑器。使用此代码:
var myDelegate = {
shouldOpenEditInPlace: function (a, b, c) {
if (c.target.id != "idOfYourContextElement") { //if the edit was not invoked through the context menu option
return false; //cancel the editor open event
}
return true;
}
};
并在初始化>
中添加代理$('.context').editInPlace({
callback: function(idOfEditor) {
var renameUrl = "http://www.google.com/"+tablerowId+"/"+enteredText+"";
return enteredText;
},
delegate: del
});