Javascript编码问题

时间:2015-09-07 22:16:51

标签: javascript jquery

我正在尝试使用循环绑定jquery函数。问题是绑定的函数总是采用列表的最后一项的值。

以下是代码的简化版本:

var obj =
{
    '.a':'1',
    '.b':'2',
    '#c':'3'
};
for (var prop in obj)
{
    if (obj.hasOwnProperty(prop))
    {
        alert(prop + '=' + obj[prop]);
        $(prop).on('click', function () {
            alert(prop + '=' + obj[prop]);
            ga('send', 'event', 'link', 'click', obj[prop]);
        });
    }
}

ga()函数模拟如下:

function ga(one, two, three, four, five)
{
    alert('simulated GA(): one=' + one + ' two=' + two + ' three=' + three + ' four=' + four + ' five=' + five);
}

初始化javascript时会触发外部警报,并按预期显示所有对象属性的值。但是当点击DOM元素时,无论点击哪个DOM元素,内部警报和ga()函数都会显示最后一个属性#c的值。

此代码的目的是将对ga()的各种调用分配给由属性选择器标识的不同DOM对象。

我在想这里有一些简单而愚蠢的东西。

0 个答案:

没有答案