//总感觉我写的jquery代码太小学生了。帮我分析下这段发信的JQUERY代码。O(∩_∩)O谢谢$('#PmPost').livequery('click',function(){
    if(!$("input[name=to_name]").val()) return;
    if(!$("input[name=to_id]").val()) return;
    if(!$("#pm_desc").val()) return;
    var url = 'comm.php?act=addPm';
    var data = {'to_id':$("input[name=to_id]").val(),'pm_desc':$('#pm_desc').val(),'type':$("input[name=type]").val()};
    var callback = function(response){
        if(response){
            $('#send_op1').css('display','none');
            $('#send_op2').css('display','block');
            $('#send_op2 .note').text('发信成功');
            }
    }
    $.post(url,data,callback);
})

解决方案 »

  1.   


    $('#PmPost').livequery('click',function(){//livequery 我不知道是个什么插件 ,这里应该是绑定onclick事件的 .
        if(!$("input[name=to_name]").val()) return;//如果name为to_name值为空 ,返回出去 ,结束函数
        if(!$("input[name=to_id]").val()) return;
        if(!$("#pm_desc").val()) return;
        var url = 'comm.php?act=addPm';//ajax 要用到的url
        var data = {'to_id':$("input[name=to_id]").val(),'pm_desc':$('#pm_desc').val(),'type':$("input[name=type]").val()};//拼接要传递的data数据
        var callback = function(response){//ajax的回调函数
            if(response){
                $('#send_op1').css('display','none');//隐藏   .show()
                $('#send_op2').css('display','block');//显示   .hide()
                $('#send_op2 .note').text('发信成功');//改变#send_op2 .note innerText
                }
        }
        $.post(url,data,callback);// post ajax  。请求路径 ,数据参数 ,回调函数 。
    })
      

  2.   

    post 请求 发送 data 到服务器端 成功返回  callback 
      

  3.   

    我觉得 有3个类似的  $("input[name=to_id]").val() 在多个地方使用了,可以用一个变量保存,
    减少了$()菜单操作,也就是方法的调用,而且还能减少代码量。
      

  4.   

    稍微帮你改下
    $('#PmPost').livequery('click',function(){
        if(!$("input[name=to_name]").val()) return;
        
        var to_idValue = $("input[name=to_id]").val();//放在局部变量中,方便下面会再次调用
        if(!to_idValue) return;
        
        var pm_descValue = $("#pm_desc").val(); //放在局部变量中,方便下面会再次调用
        if(!pm_descValue) return;
        
        var url = 'comm.php?act=addPm';
        var data = {'to_id': to_idValue, 'pm_desc':pm_descValue, 'type':$("input[name=type]").val()};
        var callback = function(response){
            if(response){
                $('#send_op1').hide();  //直接用jquery的hide api隐藏元素 
                $('#send_op2').show().find(".note").text('发信成功'); //连续操作,减少使用复杂选择器            //$('#send_op2 .note').text('发信成功'); 减少使用复杂选择器
            }
        }
        $.post(url,data,callback);
    })