2013-09-24 96 views
0

我有以下jQuery代码,它不会被触发所需的操作,当我拿出第一个2 $("body").on函数,第三个即ie。 ($("body").on("click", '.upvote', function(event){)被触发。当我把所有东西都放回没有任何作用时。事件处理程序没有被触发

$(document).ready(function() { 
    //function 1 
    $("body").on("change", '.select', function (event) { 
     $('.row.replace').empty(); 
     $('.row.replace').append("<br><br><br><br><p align='center'><img id='theImg' src='/media/loading1.gif'/></p><br><br><br><br><br><br><br><br>"); 
     var filter = $(this).find(":selected").attr("name"); 
     $.ajax({ 
      type: "POST", 
      url: "/filter_home/" + filter + "/" + "TrendingNow" + "/", 
      data: { 
       'name': 'me', 
       'csrfmiddlewaretoken': '{% csrf_token %}' 
      }, 
      //dataType: "json", 
      success: function (data) { 
       $('.row.replace').html("mem"); 
      }, 
      error: function (xhr, errmsg, err) { 
       alert(err); 
      } 
     }); //end ajax 
     return false; 
    }); //end onchange 

    //function 2 
    $("body").on("click", '.sorter', function (event) { 
     $('.row.replace').empty(); 
     $('.row.replace').append("<br><br><br><br><p align='center'><img id='theImg' src='/media/loading1.gif'/></p><br><br><br><br><br><br><br><br>"); 
     var sort = $(this).attr("name"); 
     var filter = $('.select').find(":selected").attr("name"); 
     $.ajax({ 
      type: "POST", 
      url: "/filter_home/" + filter + "/" + sort + "/", 
      data: { 
       'name': 'me', 
       'csrfmiddlewaretoken': '{% csrf_token %}' 
      }, 
      success: function (data) { 
       $('.row.replace').html(data); 
      }, 
      error: function (xhr, errmsg, err) { 
       alert(err); 
      } 
     }); //end ajax 
     return false; 
    }); //end onclick 

    //function 3 
    $("body").on("click", '.upvote', function (event) { 
     var x = $(this).attr("name"); 
     $.ajax({ 
      type: "POST", 
      url: "/upvote/" + x + "/", 
      data: { 
       'name': 'me', 
       'csrfmiddlewaretoken': '{{csrf_token}}' 
      }, 
      dataType: "json", 
      success: function (json) { 
       var y = "vote-count" + x; 
       $('i[class= "' + y + '"]').text(json.vote_count); 

       //flip button 
       $('.flip' + x).find('.card').toggleClass('flipped'); 
      }, 
      error: function (xhr, errmsg, err) { 
       alert("oops, something went wrong! Please try again."); 
      } 
     }); //and ajax 
     return false; 
    }); //end onclick 
}); //end ready 
+0

你会得到什么样的错误? – Chanckjh

+0

随着一些标记,我们可能能够复制/测试/调试等。 –

+0

什么是“{%csrf_token%}”vs稍后:'{{csrf_token}}'? –

回答

-1

事件处理函数(函数1,2,3)都返回false。这会阻止事件冒泡DOM。我猜他们没有按预期触发,因为处理事件的第一个函数正在停止传播。通过删除返回语句来测试它。

或者,您可以尝试将委托的事件处理程序范围更接近目标。

+0

如果是这种情况,第一个当所有三个都到位时,仍然应该工作。 。 。 – ernie

相关问题