点击两个收藏按钮都没反应,console中并没有报错

来源:9-3 讲师详情页2

慕雪8012440

2018-03-28

//img.mukewang.com/szimg/5abaf930000182cc13660736.jpg

7-12节的课程机构收藏没问题,js代码和本节是一样的,且共用一个url和view。但本节的收藏功能出错,原因可能出在哪里呢?

本节的JS代码:

//收藏分享
function add_fav(current_elem, fav_id, fav_type){
   $.ajax({
       cache: false,
       type: "POST",
       url:"/org/add_fav/",
       data:{'fav_id':fav_id, 'fav_type':fav_type},
       async: true,
       beforeSend:function(xhr, settings){
           xhr.setRequestHeader("X-CSRFToken", "{{ csrf_token }}");
       },
       success: function(data) {
           if(data.status == 'fail'){
               if(data.msg == '用户未登录'){
                   window.location.href="login.html";
               }else{
                   alert(data.msg)
               }

           }else if(data.status == 'success'){
               current_elem.text(data.msg)
           }
       },
   });
}

$('#jsLeftBtn').on('click', function(){
   add_fav($(this), {{ teacher.id }}, 3);
});

$('#jsRightBtn').on('click', function(){
   add_fav($(this), 1, 2);
});


http://img.mukewang.com/szimg/5abdf0500001c94b13660736.jpg

network栏也没有报错。

写回答

5回答

慕雪8012440

提问者

2018-04-03

在查阅了jquery知识后,发现好像有个jquery语法的问题。将:

$('#jsLeftBtn').on('click', function(){
   add_fav($(this), {{ teacher.id }}, 3);
});

改为:$(document).ready(function() {
   $('#jsLeftBtn').on('click', function () {
       add_fav($(this), {{ teacher.id }}, 3);
   });
});

之后,问题便解决了。

“$(document).ready(function()”的作用:

是为了防止文档在完全加载(就绪)之前运行 jQuery 代码,即在 DOM 加载完成后才可以对 DOM 进行操作。

如果在文档没有完全加载之前就运行函数,操作可能失败。

---摘自菜鸟教程:http://www.runoob.com/jquery/jquery-syntax.html


1
0

bobby

2018-04-04

好的 我看看源码

0
0

bobby

2018-04-02

@慕雪8012440 你给我发个qq消息 我看看 442421039

0
0

慕雪8012440

提问者

2018-03-30

@__bobby, 老师,network中也没有报错啊

0
0

bobby

2018-03-29

console没有报错 表示js没有错误 你看看网络中的请求有没有错误?

0
0

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4041 问题

查看课程