将click事件和参数绑定到div?

时间:2016-01-20 11:59:14

标签: javascript jquery

所以我确信这是一个非常简单的解决方案,但由于某种原因,我无法得到一个有效的解决方案。

我有一个克隆的div,我需要添加一个click事件。我试图绑定到每个克隆div的函数如下:

function allowLike(songId){
  $('.queueTrack').off('click').on('click', function(){
    console.log('clicked like');
    console.log(songId);
    $.getJSON('/user', function(data){

      var token = data.token;
      songId = songId;

      $.ajax({
            url: 'https://api.soundcloud.com/me/favorites/' + songId + '?oauth_token=' + token,
            type: 'PUT',
            success: function(result) {
                console.log('u liked' + songId)
            }
        });
    })
  })
}

克隆div时出现问题。在克隆过程中,我将id重新保留为新的id,并且需要使用旧的allowLike(songId)作为var songId = this.id; //This is the id I need for the function console.log(songId) // this logs correctly var cloned = $(this).clone(); //cloning the div cloned.attr("id", queueList.length - 1); //changing the div's id to a new one $("<span class = 'soundHover'><div class='soundMove'><i class='moveUp fa fa-arrow-up'></i><i class='moveDown fa fa-arrow-down'></div></i><span class='deleteQueue'><i class='fa fa-times'></i></span></span>").prependTo(cloned); //add some stuff to the new cloned div $(cloned).appendTo(".queueListDiv").addClass("animated flipInX, queueTrack").removeClass('track'); //add the cloned div to it's new location allowLike(songId); //call the allowLike function to bind click event 函数的参数。

我尝试获取该ID的方法如下:

songId

现在,如果我克隆div然后点击它,这可以正常工作。它做的一切都很棒。当我在一行中克隆多个div然后尝试单击它们时,会出现问题,它们都使用相同的 - (IBAction)sliderAction:(float)value { RestaurantObject *restaurant = [nearbyMapArray objectAtIndex:0]; CLLocationCoordinate2D mapLocation = CLLocationCoordinate2DMake([restaurant.latitude doubleValue]*value, [restaurant.longitude doubleValue]*value); MKCoordinateSpan coordinateSpan = MKCoordinateSpanMake(1, 1); [self.map setRegion:(MKCoordinateRegionMake(mapLocation, coordinateSpan))]; } 参数绑定,而不是每个都有自己的参数。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

首先使用一个属性将名为data-songid的songID保存到元素中,就像在HTML中一样,你可以将单个id分配给元素,这样你就可以克隆元素并轻松放入视图中,希望这有帮助,如果你还不清楚,请告诉我。

有关data attributes的更多参考资料,此处为API