Javascript Jquery在生成列表元素时单击奇怪行为
我将先发布代码,然后尝试详细说明我的问题Javascript Jquery在生成列表元素时单击奇怪行为,javascript,jquery,dom,onclick,Javascript,Jquery,Dom,Onclick,我将先发布代码,然后尝试详细说明我的问题 projNav.on('click', '#editProj', function(event) { event.preventDefault(); clearContent(returned); clearContent(projEditor); var editMain = $('#editMain'),
projNav.on('click', '#editProj', function(event) {
event.preventDefault();
clearContent(returned);
clearContent(projEditor);
var editMain = $('#editMain'),
editNav = $('#editNav'),
layerCount = 1;
// Add new layer button
projEditor.html('<div id="editNav"><ul id="layers"><li id="new_layer">+</li></ul></div><div id="editMain"></div>');
// Add new layer button functionality
projEditor.on('click', '#new_layer', function(event) {
event.preventDefault();
$('#layers').append('<li id="layer" name="layer'+layerCount+'">'+layerCount+'</li>');
layerCount++;
});
// Clicking on layer functionality
projEditor.on('click', '#layer', function(event) {
event.preventDefault();
var name = $(this).attr('name');
console.log(name);
});
});
projNav.on('click','editProj',函数(事件){
event.preventDefault();
clearContent(返回);
clearContent(projEditor);
var editMain=$(“#editMain”),
editNav=$(“#editNav”),
层计数=1;
//添加新图层按钮
html(“- +
”);
//添加新图层按钮功能
projEditor.on('click','new#u layer',函数(事件){
event.preventDefault();
$(“#layers')。追加(““+layerCount+” ”);
layerCount++;
});
//点击图层功能
projEditor.on('click','#layer',函数(事件){
event.preventDefault();
var name=$(this.attr('name');
console.log(名称);
});
});
所以基本上我们这里有一个按钮(#editproj),点击它会生成另一个按钮(#new#u layer),允许用户在“ul”中创建一个列表元素,最后一个按钮也是其中的一部分
如果只按一次#editProj按钮,则效果良好,但是如果单击两次,然后单击#new#u layer按钮,则会添加两次“li”元素。那么,单击#editProj按钮多少次,“li”元素被插入多少次
我很想了解这种行为,但我似乎在任何地方都找不到类似的帖子,所以如果有人能把我引向正确的方向,我将非常感激
干杯 您需要先将
打开
设置为关闭
,然后再将其设置为打开
成功
projEditor.off('click', '#new_layer' ); //this line is required to set on to off
projEditor.on('click', '#new_layer', function(event) {
event.preventDefault();
$('#layers').append('<li id="layer" name="layer'+layerCount+'">'+layerCount+'</li>');
layerCount++;
});
projEditor.off('click','new#u layer')//这条线需要设置为on到off
projEditor.on('click','new#u layer',函数(事件){
event.preventDefault();
$(“#layers')。追加(““+layerCount+” ”);
layerCount++;
});
您需要先将打开
设置为关闭
,然后再将其设置为打开
成功
projEditor.off('click', '#new_layer' ); //this line is required to set on to off
projEditor.on('click', '#new_layer', function(event) {
event.preventDefault();
$('#layers').append('<li id="layer" name="layer'+layerCount+'">'+layerCount+'</li>');
layerCount++;
});
projEditor.off('click','new#u layer')//这条线需要设置为on到off
projEditor.on('click','new#u layer',函数(事件){
event.preventDefault();
$(“#layers')。追加(““+layerCount+” ”);
layerCount++;
});
试试这个代码。它允许一次单击并防止处理双击和多次单击的代码。
参考以下链接了解更多信息。
我想它会很好用的
试试这个代码。它允许一次单击并防止处理双击和多次单击的代码。
参考以下链接了解更多信息。
我想它会很好用。效果很好。非常感谢,伙计,我将阅读关于off()函数的内容来理解它的行为。工作起来很有魅力。非常感谢,伙计,我将阅读关于off()函数的内容以了解其行为。这是我尝试的第一件事,但这会在一次单击后禁用按钮,这不是导航按钮所需的行为。.off()函数正是我所需要的。这是我尝试的第一件事,但它会在单击一次后一起禁用按钮,这不是导航按钮所需的行为。.off()函数正是我所需要的。