動態生成的html元素繫結click事件
第一篇部落格,開啟技術部落格的生涯,歡迎大家批評指教(堅信妹子也可以做好程式猿)
今天想說幫公司做專案的時候遇到的一個小問題,動態新增html
元素以後再去事件監聽出問題。在實際開發中會遇到要給動態生成的html
元素繫結觸發事件的情況。
就是上面的一張表格要動態實現新增行,然後序列號還要隨著增加,當刪除的時候序列號依舊是按順序排列。
剛開始使用jQuery
的on
方法來解決,但是發現一個問題會出現事件繫結很多次的問題。然後查詢了網上的一些資料,使用live進行事件委託,然而還是出現事件繫結多次bug,很崩潰。最後試著用onclick
內聯,可以完美解決,這裡其實有點困惑,但是算是比較完美的解決這個問題。
html:
<div class="col-sm-12">
<div class="panel panel-primary">
<div class="panel-body">
<div class="block-content collapse in">
<div class="span12">
<table id="volTab" class="table">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>證件號碼</th>
<th>手機號碼</th>
<th>銀行卡號</th>
<th>E-mail</th>
<th>地址</th>
<th>刪除</th>
</tr>
</thead>
<tbody>
<tr id="1">
<td>1</td>
<td><div><input type="text" class="form-control"/></div></td>
<td><div><input type="text" class="form-control"/></div></td>
<td><div><input type="text" class="form-control"/></div></td>
<td><div><input type="text" class="form-control"/></div></td>
<td><div><input type="text" class="form-control"/></div></td>
<td><div><input type="text" class="form-control"/></div></td>
<td><i class="fa fa-fw fa-minus"></i></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<button type="button" id="add" style="width:100px;float:left;margin:0 auto;margin-left:40%" class="btn btn-block btn-primary">新增</button>
<button type="button" id="submit" style="width:100px;float:left;margin:0 auto;margin-left:5px" class="btn btn-block btn-default">提交</button>
js:
<script>
$("#add").click(function(){
var len=$("#volTab tr").length;
$("#volTab").append("<tr id="+len+">"
+"<td>"+len+"</td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><i class='fa fa-fw fa-minus' onclick=\'deltr("+len+")\'"+"'></i></td>"+"</tr>");
});
var deltr =function(index)
{
debugger;
var b=$("#volTab tr").length;
$("#"+index).remove();
for(var i=index+1,j=index;i<=b;i++,j++){
$("#"+i).replaceWith("<tr id="+(i-1)+">"
+"<td>"+(i-1)+"</td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><input type='text' class='form-control'></td>"
+"<td><i class='fa fa-fw fa-minus' onclick=\'deltr("+(i-1)+")\'"+"'></i></td>"+"</tr>");
}
}
</script>
相關文章
- 動態生成html元素繫結事件iphone失效問題解決HTML事件iPhone
- jQuery實現DOM元素事件動態繫結jQuery事件
- click事件生成事件
- jQuery動態生成html元素的幾種方法jQueryHTML
- 動態生成HTML元素併為元素追加屬性HTML
- JS給全域性繫結事件以及給除某個元素外的其他元素繫結事件JS事件
- JS中動態新增元素並繫結事件,造成程式重複執行JS事件
- JQuery on()方法繫結動態元素的點選事件無響應的解決辦法jQuery事件
- 使用原生Js addEventListener給每個li元素繫結一個click事件輸出他們的順序JSdev事件
- 動態生成HTML元素-模擬線上考試功能HTML
- C++的動態繫結和靜態繫結C++
- java中的靜態繫結與動態繫結Java
- 理解靜態繫結與動態繫結
- swiper loop:true引發繫結dom的click事件無效及解決方案OOP事件
- 事件繫結事件
- Vue一個案例引發的動態元件與全域性事件繫結總結Vue元件事件
- 關於動態字串的繫結字串
- JavaScript動態新增或者刪除HTML元素JavaScriptHTML
- JSX繫結事件JS事件
- JavaScript 事件繫結JavaScript事件
- js on繫結事件JS事件
- React事件繫結的方式React事件
- KnockoutJS學習筆記14:KonckoutJS click繫結JS筆記
- JavaScript click 事件JavaScript事件
- JAVA動態繫結淺析Java
- 三、動態繫結屬性
- JS的事件繫結和事件流模型JS事件模型
- $().click () 和 $(document).on ('click','要選擇的元素',function (){}) 的不同Function
- 記一次多事件繫結中自己給自己設定的坑——click,dblclick,mousedown,mousemove,mouseup事件
- v-bind 動態更新 HTML 元素上的屬性HTML
- 繫結自定義事件事件
- v-on 繫結事件事件
- JS-事件繫結JS事件
- Vue事件繫結原理Vue事件
- Hooks與事件繫結Hook事件
- useHeadSafe:安全生成HTML頭部元素HTML
- vue 動態繫結 v-modelVue
- 動態繫結 input v-model