在另一个中附加一个 div 并在其上单击事件
append a div inside another and have click event on it
我有一个 parent div
<div id='thumb'>
然后我有一个 Javascript,它是 运行 一个 for..loop 并根据数字在其中附加 child divs。所以假设我想要 3 个新的 divs,我的循环是一个接一个地附加给它们一个 class 名称。
最后我有:
<div id='thumb'>
<div class='newTumb1'></div> /*this div was created in loop 1*/
<div class='newTumb2'></div> /*this div was created in loop 2*/
<div class='newTumb3'></div> /*this div was created in loop 3*/
</div>
我的脚本是这样的:
for (i=1;i<Num;i++){
var iDiv = document.createElement('div');
iDiv.id = 'newTumb';
iDiv.title=count;
var classN="newTumb"+count;
iDiv.className = classN;
iDiv.style.margin= '5px';
document.getElementById('thumb').appendChild(iDiv);
}
问题是我希望能够单击任何这些新的 divs (newTumbx) 并发生事件。为了我的生活..做不到!!!
我知道我需要使用某种 .on(click,...) jquery 事件,尽管我已经尝试了很多建议,但我的代码就是没有这样做。我在控制台中没有收到任何错误,但似乎从未分配过点击事件。
由于我是这一切的新手,如果有人能帮助我并告诉我我需要在哪里放置 .on(click..) 事件以及如何制作语法,我将不胜感激
感谢您的回复以及您的帮助和时间。
你想要:
for (i=1;i<Num;i++){
var iDiv = document.createElement('div');
iDiv.setAttribute('onlick', 'yourFunction()')
iDiv.id = 'newTumb';
iDiv.title=count;
var classN="newTumb"+count;
iDiv.className = classN;
iDiv.style.margin= '5px';
document.getElementById('thumb').appendChild(iDiv);
}
尝试:
function callback(e){
// e is a mouse event
alert('Hello from: ' + e.srcElement.id);
}
for (var i=1; i < Num; i++){
var count = i;
var iDiv = document.createElement('div');
iDiv.id = 'newTumb' + count;
iDiv.title=count;
var classN="newTumb";
iDiv.className = classN;
iDiv.style.margin= '5px';
iDiv.addEventListener('click', callback);
document.getElementById('thumb').appendChild(iDiv);
}
有关鼠标事件的更多信息,请查看:
https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
编辑:
上面的代码有一些错误,但总体思路仍然成立。
我用解决方案做了一个 fiddle,它添加了点击事件。这现在有效。希望对您有所帮助。
我有一个 parent div
<div id='thumb'>
然后我有一个 Javascript,它是 运行 一个 for..loop 并根据数字在其中附加 child divs。所以假设我想要 3 个新的 divs,我的循环是一个接一个地附加给它们一个 class 名称。
最后我有:
<div id='thumb'>
<div class='newTumb1'></div> /*this div was created in loop 1*/
<div class='newTumb2'></div> /*this div was created in loop 2*/
<div class='newTumb3'></div> /*this div was created in loop 3*/
</div>
我的脚本是这样的:
for (i=1;i<Num;i++){
var iDiv = document.createElement('div');
iDiv.id = 'newTumb';
iDiv.title=count;
var classN="newTumb"+count;
iDiv.className = classN;
iDiv.style.margin= '5px';
document.getElementById('thumb').appendChild(iDiv);
}
问题是我希望能够单击任何这些新的 divs (newTumbx) 并发生事件。为了我的生活..做不到!!!
我知道我需要使用某种 .on(click,...) jquery 事件,尽管我已经尝试了很多建议,但我的代码就是没有这样做。我在控制台中没有收到任何错误,但似乎从未分配过点击事件。
由于我是这一切的新手,如果有人能帮助我并告诉我我需要在哪里放置 .on(click..) 事件以及如何制作语法,我将不胜感激
感谢您的回复以及您的帮助和时间。
你想要:
for (i=1;i<Num;i++){
var iDiv = document.createElement('div');
iDiv.setAttribute('onlick', 'yourFunction()')
iDiv.id = 'newTumb';
iDiv.title=count;
var classN="newTumb"+count;
iDiv.className = classN;
iDiv.style.margin= '5px';
document.getElementById('thumb').appendChild(iDiv);
}
尝试:
function callback(e){
// e is a mouse event
alert('Hello from: ' + e.srcElement.id);
}
for (var i=1; i < Num; i++){
var count = i;
var iDiv = document.createElement('div');
iDiv.id = 'newTumb' + count;
iDiv.title=count;
var classN="newTumb";
iDiv.className = classN;
iDiv.style.margin= '5px';
iDiv.addEventListener('click', callback);
document.getElementById('thumb').appendChild(iDiv);
}
有关鼠标事件的更多信息,请查看: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
编辑: 上面的代码有一些错误,但总体思路仍然成立。
我用解决方案做了一个 fiddle,它添加了点击事件。这现在有效。希望对您有所帮助。