我尝试只使用一次jquery事件,我有以下功能:
function usrPlay() {
var flag = true;
while (flag === true) {
$(".pincha").click(function() {
console.log($(this).attr("value"));
flag = false;
});
}
}
但是......似乎这是一个无限循环,但我不明白为什么。 有帮助吗?谢谢!!
答案 0 :(得分:2)
jQuery有一个由.one()
命名的函数。
您可以使用以下代码解决问题。
$(".pincha").one( "click", function(){
console.log($(this).attr("value"));
});
有关.one()
答案 1 :(得分:0)
但是......似乎这是一个无限循环,但我不明白为什么。
这是因为你只在循环中附加事件,事件处理程序不在循环内执行,因此flag不会变为false。
您可能需要全局usrPlay
var而不是local var,因为事件处理程序不会在function usrPlay(){
window.flag = true;
$(".pincha").click(function(){
if (window.flag === true){
console.log($(this).attr("value"));
window.flag = false;
}
});
}
函数的范围内执行。试试这个:
Array.prototype.map
.call(CKEDITOR.instances.editor1.document.getBody().$.childNodes,
function(item){
return item.innerText;
})
.join("\n");