一小段代码看不懂 本帖最后由 zhuzhaodan 于 2013-01-12 10:37:53 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //版块加入 退出 $('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> | 取消</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'); }); 1. this指被点击的a.J_forum_join元素,$(this) 指被jquery封装的对象2. 返回元素上储存的相应名字的数据,可以用data(name, value)来设定。3. post是ajax其中一种,是jquery的方法4. 这里的data指ajax返回的值,和上面的 $this.data 没半毛钱关系。建议楼主学下jquery,找本书,多看api 刚查了一下 $.post(url, {fid : $this.data('fid')}, function(data) 第一个是URL,第二个是(key/value),第三个function 作用是什么啊, 这个function指ajax请求获得回复的处理方法,data为返回的数据。可以看做回调函数。 function(data){这里是函数体?data在这里面处理对吗,那data应该是参数,不是返回值啊} 里面的data是返回的数据?不是参数啊,有点糊涂 既是服务器的返回值又是收到的回复的处理参数。把返回值作为function的参数。 谁说data不是参数?你可能这样理解,做为参数,只是等待被输入或者被调用的,不过这里的data是被赋值了,所以被当作结果来使用,因为jquery封装了这一过程,所你没有看到,如果你使用原生的js就可以看到整个的过程了。 用js改变样式的简单问题!求解! 转义问题 JS代码中的日期格式输出 2个ifram页面传值问题 请问我该怎么从这个Map里取值? 关于层现实问题 html文件中引用javascript文件出现错误 服务器端能否调用客户端的参数? 各位高手,麻烦看看这个网页是什么结构??(解决马上给分!紧急~!!在线等~!) 急寻动态树形目录的asp代码或者javascript代码,万分感谢! jquery的自定义方法 使用jquery插件上传图片的问题
//版块加入 退出
$('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> | 取消</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. 返回元素上储存的相应名字的数据,可以用data(name, value)来设定。
3. post是ajax其中一种,是jquery的方法
4. 这里的data指ajax返回的值,和上面的 $this.data 没半毛钱关系。
建议楼主学下jquery,找本书,多看api
$.post(url, {fid : $this.data('fid')}, function(data) 第一个是URL,第二个是(key/value),第三个function 作用是什么啊,
可以看做回调函数。
function(data){这里是函数体?data在这里面处理对吗,那data应该是参数,不是返回值啊} 里面的data是返回的数据?不是参数啊,有点糊涂
把返回值作为function的参数。
谁说data不是参数?
你可能这样理解,做为参数,只是等待被输入或者被调用的,不过这里的data是被赋值了,所以被当作结果来使用,
因为jquery封装了这一过程,所你没有看到,如果你使用原生的js就可以看到整个的过程了。