单个JavaScript单击事件中的多个ID

MAR*_*MAR 16 javascript jquery click event-handling

在JavaScript中,我使用click事件来更改图表数据.以下是点击事件的方法.

$('#pro1').click(function () {
            chart.series[0].update({
                data: pro1
            });
        });
        $('#pro2').click(function () {
            chart.series[0].update({
                data: pro2
            });
        });
        $('#pro3').click(function () {
            chart.series[0].update({
                data: pro3
            });
        });
Run Code Online (Sandbox Code Playgroud)

我需要在一个事件中缩小这三个单击事件,这意味着我想编写一个处理id的click事件.有点像下面的代码.

$('#pro'+i).click(function () {
chart.series[0].update({
     data: pro+i
});
});
Run Code Online (Sandbox Code Playgroud)


我不知道该怎么做.上面的代码不正确,只是我对JavaScript缺乏了解.

Ale*_*x K 50

试试这个:

var that = this;
$('#pro1,#pro2,#pro3').click(function () {
    chart.series[0].update({
        data: that[$(this).attr('id')];
    });
});
Run Code Online (Sandbox Code Playgroud)


und*_*ned 13

我建议创建一个对象并使用类选择元素,idclicked元素检索辅助对象的相应属性的值:

var pros = {
   pro1: '...',
   pro2: '...'
};

$('.pros').click(function () {
    chart.series[0].update({
        data: pros[this.id]
    });
});
Run Code Online (Sandbox Code Playgroud)


Tus*_*har 10

$('#pro1,#pro2,#pro3').click(function () {
    chart.series[0].update({
        data: $(this).attr('id');
    });
});
Run Code Online (Sandbox Code Playgroud)

更新的代码

$('#pro1,#pro2,#pro3').click(function () {
    chart.series[0].update({
        data: window[this.id]
    });
});
Run Code Online (Sandbox Code Playgroud)

  • `proN`是一个变量而不是一个字符串.如果变量是全局的`window [this.id]`将起作用. (2认同)