我正在使用Jquery onclick按钮激活javascript函数:
$('#on').click(function() {
var a = document.getElementsByTagName('a');
for (i = 0; i < a.length; i++) {
a[i].addEventListener('click', function() {
var span = document.createElement('span');
var text = document.createTextNode(this.innerHTML + " ");
span.appendChild(text);
document.getElementsByClassName('output')[0].appendChild(span);
})
}
});问题是,如果单击该按钮不止一次,则该函数将重复多次。在这种情况下,它将多次打印输出。如何修改javascript函数以每次单击只打印一个字符?
示例:http://jsfiddle.net/874Ljaq1/
发布于 2014-12-04 06:18:26
当单击按钮一次时,可以使用jQuery .data()函数设置标志,只有在未设置标志的情况下才能继续。
守则:
$('#on').click(function () {
// if we have a flag that indicates this button has been clicked before,
// don't do anything.
if ($(this).data('clicked'))
return;
$(this).data('clicked', true); // set the flag
var a = document.getElementsByTagName('a');
for (i = 0; i < a.length; i++) {
a[i].addEventListener('click', function () {
var span = document.createElement('span');
var text = document.createTextNode(this.innerHTML + " ");
span.appendChild(text);
document.getElementsByClassName('output')[0].appendChild(span);
})
}
});发布于 2014-12-04 06:22:44
使用jQuery事件绑定方法one
$('#on').one("click", function() {
var a = document.getElementsByTagName('a');
for (i = 0; i < a.length; i++) {
a[i].addEventListener('click', function() {
var span = document.createElement('span');
var text = document.createTextNode(this.innerHTML + " ");
span.appendChild(text);
document.getElementsByClassName('output')[0].appendChild(span);
})
}
});https://stackoverflow.com/questions/27287470
复制相似问题