从Prototype更改为jQuery

时间:2009-11-05 20:47:00

标签: jquery prototypejs

我有以下原型代码,我想将其更改为jQuery。

有人可以帮我吗?

在我看来,除了Ajax.Updater之外,所有其他代码都可以在jquery中使用。但我很可能错了。

提前致谢。

function jsUpdateCart(){
  var parameter_string = '';
  allNodes = document.getElementsByClassName("process");
  for(i = 0; i < allNodes.length; i++) {
    var tempid = allNodes[i].id;
    var temp = new Array;
    temp = tempid.split("_");
    var real_id = temp[2];
    var real_value = allNodes[i].value;
    parameter_string += real_id +':'+real_value+',';
  }

  var params = 'ids='+parameter_string;
  var ajax = new Ajax.Updater(
    'ajax_msg','http://127.0.0.1/codeigniter_shopping/index.php/welcome/ajax_cart', {method:'post',parameters:params,onComplete:showMessage}
    );

}

function showMessage(req){
  $('ajax_msg').innerHTML = req.responseText;
  location.reload(true);
}


function jsRemoveProduct(id){
  var params = 'id='+id;
  var ajax = new Ajax.Updater(
    'ajax_msg','http://127.0.0.1/codeigniter_shopping/index.php/welcome/ajax_cart_remove', {method:'post',parameters:params,onComplete:showMessage}
    );

}

3 个答案:

答案 0 :(得分:3)

快速查看ajax method上的jQuery文档,可以轻松将Ajax.Updater调用转换为jQuery等效项:

$.ajax( {
  type: 'post',
  url: "<your_long_url>/ajax_cart",
  data: params,
  success: function( r ) {
    $('#ajax_msg').html( r );
    location.reload( true );
  }
} );

答案 1 :(得分:0)

我可能错了,但在我看来,除了Ajax.Updater和$('ajax_msg'),你所有的代码都是纯粹的javascript。 你必须使用jquery的ajax,你的选择器只需使用$('。ajax_msg'),如果它是一个类或$(“#ajax_msg”),如果id。

答案 2 :(得分:0)

未测试:

function jsUpdateCart(){
    var parameter_string = '';

    $('.process').each(function(){
        var tempid = this.id, temp = tempid.split('_'), real_id = temp[2], real_value = this.value;
        parameter_string += real_id + ':'+real_value+',';
    });

    var params = 'ids='+parameter_string;
    $('#ajax_msg').load('http://127.0.0.1/codeigniter_shopping/index.php/welcome/ajax_cart',data,
        function(){location.reload(true);});
}

听起来你可以使用starter course on jQuery。如果它对你来说是新的,那就值得一读。

相关问题