最初に非表示のインデックスページで1つの要素を参照していて、index.htmlページでjqueryで示しました。最初のものがうまくいかなかった理由を説明することはできませんが、最後のものはしません。私は押されたボタンのIDを取得しています "id = 'edit1' ... 2 ... 3..etc"ありがとう!Jquery:html要素のIDの取得:なぜ1つのソリューションが機能し、もう1つのソリューションが機能しないのですか
//why this doesn't work and the next one does???
/*$('.edit-btn').click(function(){
var id = $(this).attr('id');
console.log("btn1:", id);
});
$('.edit-btn').on('click', function(){
var id = $(this).attr('id');
console.log("btn1:", id);
});
*/
var id;
$("body").on("click",".edit-btn",function(){
id = (this.id).replace("edit","");
UPDATE:
コンテナがこの機能を使用して非表示と表示されます:だからのdivコンテナ、私はページがロードされた後に隠されたIDによって参照しようとしています
function hideWindowsAndShowOneWindow(sWindowId) {
$('.wdw').hide(); //fadeout 500
$('#' + sWindowId).show(); // fade in 500
}
をかおそらくページが読み込まれる前に。ページがロードされた後、私の推測では...ある
HTML:
それが追加された<div class="wdw" id="wdw-events">
<h4>Events text</h4></br>
<div id="content"></div>
<h4>Edit Events</h4></br>
<div>
</div>
/ページは、このスクリプトをJS、それでもただ、特別な最後の方法を持っているものを装填した後に注入ドキュメントのボタンのid属性までを参照します。
finalEventsLS.forEach(function (item) {
var date = item.date.day + "/" +item.date.month + "/" + item.date.year;
$('#content').append("<ul><li>" +
"Event nr.: " + item.id + " " +
"Name: " + item.name + " " +
"Topic: "+ item.topic + " " +
"Speaker: "+ item.speaker + " " +
"Date: " + date + " " +
"</li><button class='edit-btn' id='edit" + item.id + "'>Edit</button>
</ul>");
})
ボタンがドキュメントの読み込み後に(CSSスタイルで)非表示になっているか、本文に挿入されていますか? –
は最初は表示されていませんでしたが表示され、それを押して、私はボタンを見ることができるので、CSSで隠されていないイベントを発生させるはずです。最初に隠されたものだけが注入されていません... –
違いはイベント委任です。 http://api.jquery.com/on/#direct-and-delegated-events – j08691