绑定点击到li'的孩子
Bind click to li's child
我有这个HTML
<ul class="list-row">
<li>
<input name="field1" class="field1" type="text" placeholder="field 1">
<input name="field2" class="field2" type="text" placeholder="field 2">
<p class="delrow">Delete row</p>
</li>
<li>
<input name="field1" class="field1" type="text" placeholder="field 1">
<input name="field2" class="field2" type="text" placeholder="field 2">
<p class="delrow">Delete row</p>
</li>
<p class="addrow">Add row</p>
</ul>
当我点击Add行时,我会用我需要的元素附加一个新的li。jQuery
上的功能如下:
$(".addrow").on("click",function() {
$(this).before("<li>'n'
<input name='field1' class='field1' type='text' placeholder='field 1' />'n'
<input name='field2' class='field2' type='text' placeholder='field 2' />'n'
<p class='delrow'>Delete row</p></li>");
});
我需要的是将click事件附加到附加到DOM的新delrow。我试着选择获取兄弟并找到p元素,但我无法使其工作。
此代码应该可以工作:
$('.list-row').on('click','.delrow',function(){/*do stuff*/});
它将向列表行添加一个事件处理程序,因此它将适用于附加的delrows
$("body").on('click', '.delrow', function () {
...
});
将点击事件处理程序添加到主体中,任何点击事件都会在DOM中弹出,直到它被处理为止。在这里,我们正在寻找body
级别的单击,但使用类delrow
的原始元素。由于主体始终存在,它将自动处理.delrow
的所有新元素的点击。
您可以为此使用insertBefore
方法:
$(".addrow").on("click",function() {
var newElement = $("<li>'n'
<input name='field1' class='field1' type='text' placeholder='field 1' />'n'
<input name='field2' class='field2' type='text' placeholder='field 2' />'n'
<p class='delrow'>Delete row</p></li>").insertBefore( this );
newElement.find( '.delrow' ).click( function() {
//your code
});
});
在这种情况下,newElement
变量将指向动态创建的HTML
向
只需在附加后立即绑定:
$(".addrow").on("click",function() {
$(this).before("<li>'n'
<input name='field1' class='field1' type='text' placeholder='field 1' />'n'
<input name='field2' class='field2' type='text' placeholder='field 2' />'n'
<p class='delrow'>Delete row</p></li>");
});
$(this).prev("li").find(".delrow").click(function() {});
});
相关文章:
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 更改li标记文本的Javascript
- 完全可链接的li元素
- 使用jquery动态创建ul-li
- tiltSlider播放/暂停视频元素(如果li有当前类)
- 在ReactJS中重新渲染孩子3次可以接受吗
- 使用下拉列表筛选列表(ul>li)
- 在bootstrap中显示隐藏特定的li
- AngularJS Navigation (li ng-repeat, create header li), DOM
- 使用Jquery在li内部获取具有特定文本的锚点
- 隐藏/显示包含单词的ul li项目.但只能入住李的子女
- 如何将li类更改为li id's在Jquery中
- ul-li专属功能
- 在LI点击时更改类
- 绑定点击到li'的孩子
- 移除li孩子
- & lt; li>带着孩子
- 从& lt; ul>< light >的子元素
- 选择多个li's和它'第一个使用jquery的孩子