3

テーブルと共に動的な div を作成しました... div 内の画像をクリックすると、クリックした div の ID が表示されるようにしたいです...以下はコードです。どなたか間違いを指摘してください…!? アラート ボックスで、div の ID を取得できません

次のコードは div を作成します

function create_newGrid() {
    //create div for corresponding table
    var tableDiv = $('<div/>').attr({ "id": "settingsDiv-tab" + nooftables });
    var divImage = $('<img/>').attr({ "src": "settingsImage/settings.png", "onclick": "openTableSettings(this);" })
    $(tableDiv).append(divImage);
    // append grid to designer
    $(document.getElementById("center")).append(tableDiv);
    $(document.getElementById("center")).append(table);
}

以下は、div内の画像がクリックされたときに実行される関数です

function openTableSettings(div) {
    alert($(div).attr("id"));

}
4

4 に答える 4

1

img への参照を に渡していますopenTableSettings().closest()div を取得するために使用します。

function openTableSettings(img) { 
    alert($(img).closest("div").attr("id")); 
} 
于 2012-04-14T16:32:15.853 に答える
1

問題は、ID を持たない画像に onclick があることです。これをブラウザ コンソールで実行すると、このページの下部にテキスト付きの div が追加され、ID が適切に取得されていることがわかります。(あなたのコードですが、適応しています)

//create div for corresponding table
var tableDiv = $('<div/>').attr({ "id": "settingsDiv-tab", "onclick": "alert($(this).attr('id'));"});
var divImage = $('<p>this is a big bunch of text</p>');
tableDiv.append(divImage);
$(document.body).append(tableDiv);
于 2012-04-14T16:25:43.980 に答える
0

やった方がいいかも

var divImage = $('<img/>').attr({ "src": "settingsImage/settings.png", class: "clickable"});

その後

$(window).on('click', 'img.clickable', function(){
   alert(this.id);
});

(これは jQuery >= 1.7 を前提としています)

于 2012-04-14T16:19:25.250 に答える
0

これを試して:

$("div > img").click(function() { 
    id = $(this).parent("div").attr("id");
    alert(id);    
})
于 2012-04-14T16:22:19.360 に答える