jQuery插件之jquery editable plugin--点击编辑文字插件

jeditable是一个jquery插件,它的优点是可以就地编辑,并且提交到服务器处理,是一个不可多得的就地编辑插件。(注: 就地编辑,也有称即时编辑?一般的流程是这样的,当用户点击网页上的文字时,该文字就会出现在一个编辑框中,用户对文字进行修改完成后点击提交按钮,新的文本将发送到服务器上,然后表单消失,显示最新编辑的文本。),你可以通过这个演示页面来亲自体验下。

官网:http://www.appelsiini.net/projects/jeditable

基本的使用方法如下:

首先编辑一个 html 文件,包含这么一段:

<div class="edit" id="div_1">Dolor</div>
<div class="edit_area" id="div_2">Lorem ipsum dolor sit amet, consectetuer
adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore
magna aliquam erat volutpat.</div>

然后我们使用如下的 JS 代码来实现即时编辑(要先引入 Jeditable 插件):

$(document).ready(function() {
    $(‘.edit‘).editable(‘http://www.example.com/save.php‘);
});

实现不同内容的编辑以及更多的定制项:

$(document).ready(function() {
    $(‘.edit‘).editable(‘http://www.example.com/save.php‘, {
        indicator : ‘Saving...‘,
        tooltip   : ‘Click to edit...‘
    });
    $(‘.edit_area‘).editable(‘http://www.example.com/save.php‘, {
        type      : ‘textarea‘,
        cancel    : ‘Cancel‘,
        submit    : ‘OK‘,
        indicator : ‘<img src="img/indicator.gif">‘,
        tooltip   : ‘Click to edit...‘
    });
});

上面的定制项包括按钮的文本,提示信息以及提交时的 loading 图片显示等等。

那么当用户点击了确定按钮时,发送到服务器上的是什么数据呢?

数据内容包含了编辑框的 ID 以及新的内容:id=elements_id&value=user_edited_content

你也可以使用下面的方法来修改默认的参数名:

$(document).ready(function() {
    $(‘.edit‘).editable(‘http://www.example.com/save.php‘, {
        id   : ‘elementid‘,
        name : ‘newvalue‘
    });
});

修改后传递的数据变成:elementid=elements_id&newvalue=user_edited_content

如果单行文本框不注意满足你的要求,可以使用 textarea 多行文本编辑框: 

$(document).ready(function() {
    $(‘.edit_area‘).editable(‘http://www.example.com/save.php‘, {
        loadurl  : ‘http://www.example.com/load.php‘,
        type    : ‘textarea‘,
        submit  : ‘OK‘
    });
});

另外 Jeditable 还支持下拉选择框哦:

$(‘.editable‘).editable(‘http://www.example.com/save.php‘, {
    data   : " {‘E‘:‘Letter E‘,‘F‘:‘Letter F‘,‘G‘:‘Letter G‘, ‘selected‘:‘F‘}",
    type   : ‘select‘,
    submit : ‘OK‘
});

或者你也可以从服务器获取下拉选择的数据内容:

<?php
 /* http://www.example.com/json.php */
 $array[‘E‘] =  ‘Letter E‘;
 $array[‘F‘] =  ‘Letter F‘;
 $array[‘G‘] =  ‘Letter G‘;
 $array[‘selected‘] =  ‘F‘;
 print json_encode($array);
?>

然后通过 loadurl 指定这个服务器输出数据的 URL 地址:

$(‘.editable‘).editable(‘http://www.example.com/save.php‘, {
    loadurl : ‘http://www.example.com/json.php‘,
    type   : ‘select‘,
    submit : ‘OK‘
});

如果你希望给组件设定不同的样式,可以这样:

$(‘.editable‘).editable(‘http://www.example.com/save.php‘, {
    cssclass : ‘someclass‘
});

$(‘.editable‘).editable(‘http://www.example.com/save.php‘, {
    loadurl : ‘http://www.example.com/json.php‘,
    type    : ‘select‘,
    submit  : ‘OK‘,
    style   : ‘display: inline‘
});  

或者:

$(‘.editable‘).editable(‘http://www.example.com/save.php‘, {
    loadurl : ‘http://www.example.com/json.php‘,
    type    : ‘select‘,
    submit  : ‘OK‘,
    style   : ‘inherit‘
});

最后来点高级的内容,如果你希望使用一个 JS 函数而不是 URL 来处理提交,可以这样:

$(‘.editable‘).editable(function(value, settings) {
    console.log(this);
    console.log(value);
    console.log(settings);
    return(value);
 }, {
    type    : ‘textarea‘,
    submit  : ‘OK‘,
});

处理回调: 

$(‘.editable‘).editable(‘http://www.example.com/save.php‘, {
    type     : ‘textarea‘,
    submit   : ‘OK‘,
    callback : function(value, settings) {
        console.log(this);
        console.log(value);
        console.log(settings);
    }
});

使用附加参数:

$(".editable").editable("http://www.example.com/save.php";, {
   submitdata : {foo: "bar"};
});

直接从URL获取显示内容:

$(".editable").editable("http://www.example.com/save.php";, {
    loadurl : "http://www.example.com/load.php"

});

英文原文:http://www.appelsiini.net/projects/jeditable

时间: 2024-10-13 21:13:35

jQuery插件之jquery editable plugin--点击编辑文字插件的相关文章

Jeditable 点击编辑文字插件

Jeditable - jQuery就地编辑插件使用 jeditable是一个jquery插件,它的优点是可以就地编辑,并且提交到服务器处理,是一个不可多得的就地编辑插件.(注: 就地编辑,也有称即时编辑?一般的流程是这样的,当用户点击网页上的文字时,该文字就会出现在一个编辑框中,用户对文字进行修改完成后点击提交按钮,新的文本将发送到服务器上,然后表单消失,显示最新编辑的文本.),你可以通过这个演示页面来亲自体验下. 官网:http://www.appelsiini.net/projects/j

Eclipse安装插件支持jQuery,Js智能提示

最近工作中用到jQuery插件,需要安装eclipse插件才能支持jQuery智能提示,在网上搜索了一下,常用的有三个插件支持jQuery的智能提示:1.jQueryWTP2.Spket3.Aptana 在安装插件之前需要先安装eclipse,如果已经安装了eclipse,可以直接看下面的插件安装方法,本人使用的Fedora 12,操作如下:1.直接打开”应用程序”-->”系统工具”-->”终端”2.输入命令”su”,这个命令是临时切换到root用户3.输入root用户的密码4.输入命令”yu

jQuery库 之 jquery slimscroll插件使用

(官网简介) What is slimScroll? slimScroll is a small (4.6KB) jQuery plugin that transforms any div into a scrollable area with a nice scrollbar.slimScroll doesn’t occupy any visual space as it only appears on a user initiated mouse-over. User can drag th

Eclipse安装插件支持jQuery智能提示

http://www.cnblogs.com/shulin/archive/2010/08/09/1796146.html 最近工作中用到jQuery插件,需要安装eclipse插件才能支持jQuery智能提示,在网上搜索了一下,常用的有三个插件支持jQuery的智能提示: 1.jQueryWTP 2.Spket 3.Aptana 在安装插件之前需要先安装eclipse,如果已经安装了eclipse,可以直接看下面的插件安装方法,本人使用的Fedora 12,操作如下: 1.直接打开"应用程序&

jQuery时间轴插件:jQuery Timelinr

前言 这是一款可用于展示历史和计划的时间轴插件,尤其比较适合一些网站展示发展历程.大事件等场景.该插件基于jQuery,可以滑动切换.水平和垂直滚动.支持键盘方向键.经过扩展后可以支持鼠标滚轮事件. HTML 我们在body中建立一个div#timeline作为展示区,#dates为时间轴,示例中我们用年份作为主轴,#issues作为内容展示区,即展示对应主轴点年份的内容,注意id对应上. <div id="timeline"> <ul id="dates&

[译] EXTENDING JQUERY – 2.2 A simple plugin

2.2 一个简单的插件示例 jQuery 插件能做任何事情,这个已经由浩如烟海的各类第三方插件如证明.小到只影响一个元素,大到改变多个元素的外观和行为,jQuery 的各种功能等你来扩展. 2.2.1 占位文本插件 为了维持一个form 的空间,很多时候一个字段的描述往往是省略的,取而代之的是用一个占位文本.如果这个字段是空的,占位文本将会重新显示.为了更好的用户体验,这个占位文本往往是灰色的,用来区别真正的内容.这个功能有个比较通用的名字叫做水印(watermark). 占位的文本可以在插件初

从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件

原文:从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来! 从零

jQuery插件开发,jquery插件

关于jQuery插件的开发自己也做了少许研究,自己也写过多个插件,在自己的团队了也分享过一次关于插件的课.开始的时候整觉的很复杂的代码,现在再次看的时候就清晰了许多.这里我把我自己总结出来的东西分享出来,帮助那些和我一样曾经遇到过同样问题的人. 我要做什么 我想要得到的javascript 插件应该会有以下几个特征 * 以下的代码均假设存在 jQuery 插件的第一形态 面对这种情况,通常我们会通过定义function的方式来实现. function pluginName($selector){

jQuery为开发插件提拱了两个方法:jQuery.fn.extend(); jQuery.extend();

jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); jQuery.fn jQuery.fn = jQuery.prototype = { init: function( selector, context ) {//…. //…… }; 原来 jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦. 虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便. jQuery