<div class="todo-task">
<input type="checkbox" id='check1' />
<label for='check1'> asdasdasdasdasd
<span class="todo-remove mdi-action-delete"></span>
</label>
<div>
<input/>
<label>
<span></span>
</label>
</div>
这是我的DOM
结构
当我单击内部span元素时单击事件不起作用。当我将div作为一个独立元素保持在div的一侧时,它工作正常。任何有关点击不会在内部span
元素
这是我的点击event
$(document).on('click', '.todo-remove', function () {
alert( 'Delete');
});
答案 0 :(得分:0)
'span'元素没有.todo-remove类,在这种情况下不会调用该事件。尝试将类添加到span并添加如下样式:
padding: 20px;
display: block;
float: right;
当然,您稍后会更改此代码。
答案 1 :(得分:0)
试试这个javascript。它会对你有用。
$("label[for='check1']").click(function(){
alert("deleted");
});
答案 2 :(得分:0)
以下代码适合我: http://jsfiddle.net/Lknca8f1/
<div class="todo-task">
<input type="checkbox" id='check1' />
<label for='check1'> asdasdasdasdasd
<span class="todo-remove mdi-action-delete"></span>
</label>
</div>
.todo-remove{
padding:20px;
background: #f00;
cursor:pointer;
}
$(function(){
$(document).on('click','.todo-remove', function(){
$(this).closest('.todo-task').remove();
});
})
答案 3 :(得分:0)
在DOM准备好之前,我是你注册的事件。 请在准备好的活动后注册。
<div class="todo-task">
<input type="checkbox" id='check1' />
<label for='check1'> Click
<span class="todo-remove mdi-action-delete">Span</span>
</label>
</div>
$(document).ready(function(){
$(document).on('click', '.todo-remove', function () {
alert( 'Delete');
});
});
答案 4 :(得分:0)
解决方法是将内部跨度的z缓冲区设置为-1 即。
<div class="todo-task">
<input type="checkbox" id='check1' />
<label for='check1'> asdasdasdasdasd
<span class="todo-remove mdi-action-delete" style="z-index:-1"></span>
</label>
</div>