jQuery / javascript - 尝试将对象的函数作为参数传递给函数

时间:2014-01-06 07:36:27

标签: javascript jquery html

我试图根据与其他用户数据相比不同的百分比,为不同的列设置可调高度。

function Person(name, points) {
    "use strict";
    this.name = name;
    this.points = points;
    this.height = 0;
}

var daniel = new Person('Daniel', '2');
var boaz = new Person('Boaz', '4');
var josh = new Person('josh', '5');

Person.prototype.getHeight = function () {
    "use strict";
    var scores = [daniel.height, boaz.height, josh.height],
        highest = 0,
        i = 0;
    for (i; i < scores.length; i += 1) {
        if (scores[i] > highest) {
            highest = scores[i];
        }
    }
    this.height = String(this.points / highest);
    return this.height;
};

$(document).ready(function () {
    "use strict";
    var $daniel = daniel.getHeight() + '%',
        $boaz = boaz.getHeigt() + '%',
        $josh = josh.getHeight + '%';
    $('#daniel').height($daniel);
    $('#boaz').height($boaz);
    $('#josh').height($josh);
});

基本上所有这些代码都会创建具有不同点级别的三个不同person,然后根据与得分最高的人相比的百分比值设置其高度。例如。我有十分,你有三分,我会100分,你会是3.我然后使用jQuery将其转换为%,并尝试根据百分比调整单个ID的大小。

出于某种原因,当我在实际页面上执行此操作时,没有任何内容出现。出了什么问题?我假设它与jQuery有关,因为普通的javascript运行正常。

2 个答案:

答案 0 :(得分:1)

你这里有一个错字:

$boaz = boaz.getHeigt() + '%'

应该是:

$boaz = boaz.getHeight() + '%'

答案 1 :(得分:1)

var scores = [daniel.height, boaz.height, josh.height],

应该是

var scores = [daniel.points, boaz.points, josh.points],

右?

因为您使用%,所以

this.height = String(this.points / highest);

应该是

this.height = this.points / highest * 100;