本帖最后由 zhuzhaodan 于 2013-01-12 10:37:53 编辑

解决方案 »

  1.   


    //版块加入 退出
    $('a.J_forum_join').on('click', function(e){
    e.preventDefault();
    var $this = $(this),  //-------------- this 是 document对象 $(this)是获得document对象的jquery对象
    role = $this.data('role'),  //---------- 获得存放在元素上的数据
    url = (role == 'join' ? JOIN_URL : QUIT_URL); if(lock) {
    return false;
    }
    lock = true; //global.js
    Wind.Util.ajaxMaskShow(); $.post(url, {fid : $this.data('fid')}, function(data) { // 3. -----用户自己扩展的方法。
    //global.js
    Wind.Util.ajaxMaskRemove(); if(data.state == 'success') {  //--------- function(data)接收的参数
    if(role == 'join') {
    $this.html('已加入<span>&nbsp;&nbsp;|&nbsp;&nbsp;取消</span>').removeClass('core_follow').addClass('core_unfollow').data('role', 'quit');
    }else{
    $this.html('加入版块').removeClass('core_unfollow').addClass('core_follow').data('role', 'join');
    }
    }else if(data.state == 'fail') {
    //global.js
    Wind.Util.resultTip({
    error : true,
    msg : data.message,
    elem : $this,
    follow : true
    });
    }
    lock = false;

    }, 'json');
    });
      

  2.   

    1. this指被点击的a.J_forum_join元素,$(this) 指被jquery封装的对象
    2. 返回元素上储存的相应名字的数据,可以用data(name, value)来设定。
    3. post是ajax其中一种,是jquery的方法
    4. 这里的data指ajax返回的值,和上面的 $this.data 没半毛钱关系。
    建议楼主学下jquery,找本书,多看api
      

  3.   

    刚查了一下 
    $.post(url, {fid : $this.data('fid')}, function(data)  第一个是URL,第二个是(key/value),第三个function 作用是什么啊,
      

  4.   

    这个function指ajax请求获得回复的处理方法,data为返回的数据。
    可以看做回调函数。
      

  5.   


    function(data){这里是函数体?data在这里面处理对吗,那data应该是参数,不是返回值啊}  里面的data是返回的数据?不是参数啊,有点糊涂
      

  6.   

    既是服务器的返回值又是收到的回复的处理参数。
    把返回值作为function的参数。
      

  7.   


    谁说data不是参数?
    你可能这样理解,做为参数,只是等待被输入或者被调用的,不过这里的data是被赋值了,所以被当作结果来使用,
    因为jquery封装了这一过程,所你没有看到,如果你使用原生的js就可以看到整个的过程了。