Array.prototype方法导致调用所有原型方法

时间:2011-05-21 19:56:59

标签: javascript jquery methods prototype-programming

当有人将鼠标悬停在一组元素中时,我正在使用jQuery hover来调用此方法

jQuery.fn.setToolTipPositionAndContent = function() {
var shift = rota.shifts.find_by_id($(this).data('id'));
$('#tooltip').css({ top: $(this).offset().top + "px", left: $(this).offset().left + 20 + "px"});
$('#tooltip div.content').html("<div class='ui-icon ui-icon-triangle-1-w'></div>" + shift.user().userName + ": " + formatTime(shift.start) + " - " + formatTime(shift.end));
$('#tooltip div.ui-icon').show();
}

这是使用的原型方法(find_by_id):

Array.prototype.find_by_id = function(id) { // originally made to find shift in shifts array by id
for (var i=0; i < this.length; i++) {
    if (this[i].id == id) {
        var found = this[i];
    }
}
return found;
}

出于某种原因,某些地方出现了问题,并且所有Array.prototype方法都按照它们在源代码中出现的顺序被调用。这严重搞砸了我的应用程序!

任何想法出了什么问题?我离开了他们!

以下是彩色来源:http://pastie.org/1947729

0 个答案:

没有答案