1

作成した関数があり、id を動的クリック イベント ハンドラーに渡す必要があります。オブジェクトはなくなり、カウンター値は常に​​最後にインクリメントされた値になります。渡す方法はあると思いますが、わかりません。

これが私のデモコードです... http://jsfiddle.net/ryanoc/r62jJ/

どんな助けでも大歓迎です。

(function(){
$('#chartContainer').empty().attr("style", "overflow: hidden;");
var office = [];
var len = 5;
for (var i = 0; i < len; i++) {
    var obj = {
        officeTitle: 'Office:'+i,
        officeId: i,
        resizeable: true
    };
    office.push(obj);
}

for (var i = 0; i < office.length; i++) {

    var chartHtml = $("<div>")
    .attr("id", "chartContainer" + i)
    .attr("style", "margin-top:20px;");

    $('#chartContainer').append(chartHtml);

    var officeLabel = $("<div>")
    .attr("style", "background-color:#eee;cursor:pointer;")
    .html(office[i]["officeTitle"] + ':' + office[i]["officeId"] )
    .click(function(){
        alert(i);
        alert(office[i]["officeId"])
    });

    $('#chartContainer' + i).append(officeLabel);
}

})();

4

2 に答える 2

1

あなたができる

(function(index) {
    var officeLabel = $("<div>")
        .attr("style", "background-color:#eee;cursor:pointer;")
        .html(office[index]["officeTitle"] + ':' + office[index]["officeId"] )
        .click(function(){
            alert(office[index]["officeId"])
        });
    $('#chartContainer' + index).append(officeLabel);
})(i);

デモ

于 2013-06-28T17:06:17.203 に答える