>  기사  >  웹 프론트엔드  >  마우스 click_jquery로 컨텐츠를 수정하는 jQuery ajax 메소드

마우스 click_jquery로 컨텐츠를 수정하는 jQuery ajax 메소드

WBOY
WBOY원래의
2016-05-16 16:43:071259검색

기존 테이블의 행에 대한 코드는 다음과 같습니다.

<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. 열 정렬 열에 입력 상자를 삽입하고 입력 상자에 열 정렬 열의 내용을 표시한 후 포커스로 설정합니다
4. 입력 내용을 수정하고, 포커스가 사라졌을 때 데이터를 제출하고, ajax를 사용하여 서버로 데이터를 전송하는 방식이 바로 포스트 방식입니다
. 5. 데이터를 제출하면 데이터가 수정되고 있다는 알림이 표시됩니다. . . 아니면 사진을 기다려주세요
6. 성공 메시지를 반환하고 수정된 내용을 다시 표시합니다.

이 기능을 구현한 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'];
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.