Jquery“stopImmediatePropagation不是函数”错误

时间:2013-03-15 03:01:07

标签: javascript jquery

我得到这段代码http://www.technoread.net/webdesign/javascript-a-jquery/item/89-live-table-edit-delete-with-pagination-using-jquery并修改为:

代码工作得很好,但是firebug在这方面显示出一个错误:

$("#four_"+ID).html(four_val);
$("#five_"+ID).html(five_val);


e.stopImmediatePropagation();

}
});
}

enter image description here

  $("#edit_td").focus(function(){
  $(this).width(1500)
  });

  $(document).ready(function()
  {
  $(".delete").live('click',function()
  {
  var id = $(this).attr('id');
  var b=$(this).parent().parent();
  var dataString = 'id='+ id;
  if(confirm("Estás seguro de que quieres borrar este proceso? se borrará  completamente"))
  {
  $.ajax({
  type: "POST",
  url: "delete_ajax.php",
  data: dataString,
  cache: false,
  success: function(e)
  {
  $(".tablasuperior").hide();
  $(".tablainferior").hide();
  $("#avisoborrado").show();
  e.stopImmediatePropagation();
  }
       });
return false;
  }
  });



  //editar  click en la tr


  $(".bote").live('click',function()
 //$(".edit_tr").live('dblclick',function()
  {
  var ID=$(this).attr('id');


 $("#four_"+ID).hide();
 $("#five_"+ID).hide();



 $("#four_input_"+ID).show();
 $("#five_input_"+ID).show();


 })




 $(".guardar").live('click',function()

 {
 var ID=$(this).attr('id');

 var one_val=$("#one_input_"+ID).val();
 var two_val=$("#two_input_"+ID).val();
 var three_val=$("#three_input_"+ID).val();
 var four_val=$("#four_input_"+ID).val();
 var five_val=$("#five_input_"+ID).val();

 var dataString = 'id='+ ID  +'&name='+one_val+'&category='+two_val+'&price='+three_val+'&discount='+four_val+'&discount 2='+five_val;;
 if(one_val.length>0&& two_val.length>0 && three_val.length>0 && four_val.length>0)
 {

 $.ajax({
 type: "POST",
 url: "live_edit_ajax.php",
 data: dataString,
 cache: false,
 success: function(e)
 {

 $("#one_"+ID).html(one_val);
 $("#two_"+ID).html(two_val);
 $("#three_"+ID).html(three_val);
 $("#four_"+ID).html(four_val);
 $("#five_"+ID).html(five_val);


 e.stopImmediatePropagation();

 }
 });
 }
else
{
alert('Ingresa algo');
}

});



$(".editbox").live("mouseup",function(e)
{
e.stopImmediatePropagation();
});


$(document).mouseup(function()
{
//si hay clic en el layout esconde la edit box y muestra la de texto
$(".editbox").hide();
$(".text").show();
});


//Pagination

function loading_show(){
$('#loading').html("<img src='images/loading.gif'/>").fadeIn('fast');
}
function loading_hide(){
$('#loading').fadeOut('fast');
$("#avisoborrado").hide();
}                
function loadData(page){
loading_show();                    
$.ajax
({
type: "POST",
url: "load_data.php",
data: "page="+page,
success: function(msg)
{
$("#container").ajaxComplete(function(event, request, settings)
{
loading_hide();
$("#container").html(msg);
});
}
});
}
loadData(1);  // For first time page load default results
$('#container .pagination li.active').live('click',function(){
var page = $(this).attr('p');
loadData(page);
});           
$('#go_btn').live('click',function(){
var page = parseInt($('.goto').val());
var no_of_pages = parseInt($('.total').attr('a'));
if(page != 0 && page <= no_of_pages){
loadData(page);
}else{
alert('Ingrese un proceso entre 1 y '+no_of_pages);
$('.goto').val("").focus();
return false;
}
});

});

2 个答案:

答案 0 :(得分:3)

jquery success函数的ajax回调没有事件作为其参数。它不是DOM事件,而是异步执行。

更新

$(".guardar").live('click',function(e) {

  < your code here >

  if(one_val.length>0&& two_val.length>0 && three_val.length>0 && four_val.length>0)
  {
    e.stopImmediatePropagation();
    $.ajax({
      type: "POST",
      url: "live_edit_ajax.php",
      data: dataString,
      cache: false,
      success: function(data) {
        $("#one_"+ID).html(one_val);
        $("#two_"+ID).html(two_val);
        $("#three_"+ID).html(three_val);
        $("#four_"+ID).html(four_val);
        $("#five_"+ID).html(five_val);
      }
    });
  }
  else
  {
    alert('Ingresa algo');
  }
}); 

答案 1 :(得分:0)

e在您的情况下,不是您认为的事件,从服务器收到的数据,请查看jQuery.ajax docs 。此外,您正在使用live,它基本上用于事件冒泡DOM的主体,以便将在动态元素上触发的事件委托给更高级别的元素。

如果你想使用它,你可以喜欢

$(".delete").live('click',function(e)
  {
    e.stopPropagation();
    e.stopImmediatePropagation();

P.S。 donot使用live或delegate它们都已弃用,请改用.on