Javascript One onclick返回两次结果?

时间:2016-08-30 17:16:11

标签: javascript jquery onclick onclicklistener

这是我的代码

<div class="rating">
  @for ($i = 1; $i <= 5; $i++)
    @if ($i <= ceil($rating[0]->average))
      <i id="{{$i}}" style="cursor:pointer" class="fa fa-star rating"></i>
    @else 
      <i id="{{$i}}" style="cursor:pointer" class="fa fa-star-o rating"></i>
    @endif
  @endfor
</div>

我的Javascript

<script type="text/javascript">
 $('.rating').click(function() {
    var id = $(this).attr('id');
    $.ajax({
        url: "{{url('rating')}}",
        type: "POST",
        data: { id_artikel: "{{$artikel->artikel_id}}",  _token: '{{ csrf_token() }}', value:id},
        success: function(response){
          alert('Bintang berhasil anda berikan!'); 
      },
      error: function(){
          alert('Bintang gagal anda berikan!')
      }
  });
});

</script>

当我点击我得到两次结果。第一个给出了正确的#id;&#39;和其他人给予null。我试着用unbind,但仍然给我两次结果。我也尝试只做一次,但仍然给我两次结果。

1 个答案:

答案 0 :(得分:3)

那是因为你在同一个DOM树中有两个元素app.controller('MainCtrl', function($scope, shareService) { $scope.name = shareService.getData(); shareService.setDataService('dataService2'); $scope.name = shareService.getData(); }) .factory('shareService', function($injector) { var dataServiceName; return { setDataService: function(name) { dataServiceName = name; }, getData: function(name) { return $injector.get(dataServiceName || 'dataService').data; } } }) .factory('dataService', function() { return {data: 'world'} }) .factory('dataService2', function() { return {data: 'world 2'} });

我建议将最上面的rating元素的类重命名为其他内容。