当前位置:首页 > 编程教程 > jQuery技术文章 > jQuery+ajax实现鼠标单击修改内容的方法

如何使用jQuery+ajax实现鼠标单击修改内容

  • 发布时间:
  • 作者:码农之家
  • 点击:150

这篇文章主要知识点是关于jQuery、ajax、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

jQuery实战
jQuery实战高清第三版
  • 类型:jQuery大小:99.0 MB格式:PDF作者:Bear Bibeault
立即下载

jQuery+ajax实现鼠标单击修改内容的方法

现有表格中的一行的代码如下所示: 

<tr>
 <td><span class="catid">2</span></td>
 <td>公司介绍</td>
 <td>内部栏目</td>
 <td><span class="listorder" title="点击修改">2</span></td>
</tr>

要实现鼠标单击修改内容思路如下:
 
1、点击栏目排序栏目中的数字,获取同一行的第一列中的内容,即栏目id
2、隐藏栏目排序中的数字
3、在栏目排序列中插入input框,并在input框中显示栏目排序中的内容,并设置为焦点
4、修改input中的内容,失去焦点的时候提交数据,用ajax向服务器传递数据 方法为post方法
5、提交数据的时候,友好提示修改中。。。 或者等待图片
6、返回成功信息 ,重新显示修改后的内容 去掉input框

实现这一功能的jquery核心代码如下:

$('.listorder').click(function(e){
 var catid = $(this).parent().siblings("td:eq(0)").text();//获取同一行上 第一列中的id值
 var listorder_now_text = $(this).text();//获取listorder中的内容 先保存起来
 $(this).text("");//设置内容为空
 var list_form = '<input type="text"  value="'+listorder_now_text+'" size=2 class="listorder_input" />' ;
 $(this).parent().append(list_form); //插入 input框
 $(".listorder_input").focus();
//自定义一个div 提示修改中
 var loading = '<div id="loading"><img src="img/loading.gif" alt="修改中..."/></div>';
 $(this).parent().append(loading);
 $('#loading')
  .css({
   "color" : "red" ,
   "display" : "none"
  })
//定义ajax的全局事件
 $(this).ajaxStart(function(){
  $('#loading').show();
 })
 $(this).ajaxStop(function(){
  $('#loading').remove();
 })
 $(".listorder_input").blur(function(){
  var thislist = $(this).siblings(); //取得同级的标签 即 修改后需要显示的 listorder
  $.post("ajax.php",{
  action : "mod_listorder",
  catid : catid ,
  listorder : $(this).attr("value")
  } , function(data, textStatus){
    $(thislist).text(data);
    }
  );//end .post
  $(this).remove();
 })//end function blur
})// end function click

ajax.php中内容就简单了,这里只做处理做演示用,并没有向服务器提交数据,代码如下:

sleep(1);//延时运行1秒,查看效果用,实际代码中不需要
echo $_POST['listorder'];

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

jQuery 相关电子书
学习笔记
网友NO.571496

jQuery ajax分页插件实例代码

推荐阅读:jQuery插件开发精品教程让你的jQuery提升一个台阶 既然说到基于jQuery的ajax分页插件,那我们就先看看主要的代码结构:(我觉得对咱们程序员来说再优美的文字描述、介绍也 比不上代码来得实在。) 1、首先定义一个pager对象: var sjPager = window.sjPager = {opts: {//默认属性pageSize: ,preText: "pre",nextText: "next",firstText: "First",lastText: "Last",shiftingLeft: ,shiftingRight: ,preLeast: ,nextLeast: ,showFirst: true,showLast: true,url: "",type: "POST",dataType: "JSON",searchParam: {},beforeSend: null,success: null,complete: null,error: function () {alert("抱歉,请求出错,请重新请求!");},},pagerElement: null,//分页dom元素commonHtmlText: {//公共文本变量},init: function (obj, op) {//对象初始化},doPage: function (index, pageSize, searchParam) {//执行分页方法},getTotalPage: function () {//获取总页数},createPreAndFirstBtn: function (pageTextArr) {//创建上一页……

网友NO.789246

jQuery+AJAX实现遮罩层登录验证界面(附源码)

JQuery遮罩层登录界面效果的实现,AJAX实现登录验证,文章尾有完整示例源码下载,欢迎大家学习研究。 操作系统: Windwos7 Ultimate 开发工具: Visual Studio 2010 数据库: Sql Server 2005 测试浏览器:IE8、FF3.6.8、Google Chrome (IE8中弹出登录层后会出现竖拉条,其他两种没有出现,那个竖拉条可以在JS中通过修改数值让其不出现,但是下面会出现白边,越来越觉得IE有点那个了......) 1、预览 1)登录前 2)点击登录显示登录窗口(层),同时用一个灰色透明层遮罩主窗体内容,点击【登录】,隐藏【登录】,显示loading图,登录失败,显示【登录】,隐藏登录图,同时显示提示信息 3)登录成功后,去掉去掉遮罩层和登录层,显示“xxx,您好! ” 2、实现 使用VS2010创建一个Web Site,此功能是在母版页Site.master中实现的。VS2010会自动添加JQuery的js文件到Scripts文件夹,……

网友NO.137637

jQuery+ajax实现无刷新级联菜单示例

前台用AJAX直接调用后台方法,老有人发帖提问,没事做个示例 下面是做的一个前台用JQUERY,AJAX调用后台方法做的无刷新级联菜单 CasMenu.aspx页面: %@ Page Language="C#" AutoEventWireup="true" CodeFile="CasMenu.aspx.cs" Inherits="_Default" % !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head id="Head1" runat="server" titlePorschev--前台JS(Jquery)调用后台方法 级联菜单/title script src="js/jquery-1.3.2-vsdoc.js" mce_src="js/jquery-1.3.2-vsdoc.js" type="text/javascript"/mce:script script type="text/javascript" $(function() { $("#selPro").change(function() { //省份下拉菜单的change事件 var params = '{str:"' + $(this).val() + '"}'; //此处参数名要注意和后台方法参数名要一致 $.ajax({ type: "POST", //提交方式 url: "CasMenu.aspx/ShowCity", //提交的页面/方法名 data: params, //参数(如果……

网友NO.562814

jQuery.ajax向后台传递数组问题的解决方法

今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值。 前台js方法部分代码如下: //创建一个测试数组var boxIds = new Array();boxIds.push(12182);boxIds.push(12183);boxIds.push(12184);//向后台交互$.ajax({ url: "/xxx", type: "GET", data: { "boxIds": boxIds, "boxType": 0, "time": new Date().getTime() }, success: function(data) { //do sth... }}); 后台controller代码(SpringMVC) @ResponseBody@RequestMapping(value = "/box/changeLock")public String changeLock(final Long[] boxIds, final int boxType) { return locker_ChangeLockService.changeLock(boxIds, boxType);} 观察浏览器中发送的请求,可以发现参数如下: 可以看到,参数的名字为boxIds[]而不是我们所定义的boxIds,也就是说,当传递数组时,会在我们的数组名称后自动加上”[]”,所以后台接不到。 解决办法: 设置jQuery.ajax的tradional属性 $.ajax({ url: "/xxx", type: "GET", data: { "boxIds": bo……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com