jQuery----事件綁定之動態添加、刪除table行

来源:https://www.cnblogs.com/WangYujie1994/archive/2019/01/21/10298846.html
-Advertisement-
Play Games

在jquery中,給元素綁定事件,本文一共介紹三種方法,運用案例,針對最常用的on()方法,進行事件綁定操作。 事件綁定方法: ①$(element).bind() 參數:{ “事件名稱1”:function( ){ } ,“事件名稱2”:function(){ },......} 例如給類名為on ...


在jquery中,給元素綁定事件,本文一共介紹三種方法,運用案例,針對最常用的on()方法,進行事件綁定操作。

 

事件綁定方法:

①$(element).bind()

參數:{ “事件名稱1”:function( ){ } ,“事件名稱2”:function(){ },......}

例如給類名為one的div綁定滑鼠點擊和滑鼠滑入、滑鼠滑出事件

$( "div.one").bind( { "click":function(){},“mouseover”:function(){},“mouseout”:function(){} });

②父級元素.delegate()

參數1:子級元素

參數2:事件名稱

參數3:事件處理函數

③父級元素.on()

參數1:事件名稱

參數2:子級元素

參數3:事件處理函數

 

示例如下:

                             

分析:點擊“添加數據”按鈕,彈出“添加數據”對話框,輸入課程名字和所屬學院,點擊“添加”按鈕,將輸入的課程名稱和所屬學院添加至表格中,同時,點擊“GET”,刪除“GET”所在行

 

具體代碼如下:

  1 <!DOCTYPE html>
  2 <html>
  3     <head>
  4         <meta charset="utf-8">
  5         <title></title>
  6         <style type="text/css">
  7             * {
  8                 padding: 0px;
  9                 height: 0px;
 10             }
 11 
 12             /* 遮蓋層 */
 13             .cover {
 14                 width: 100%;
 15                 height: 100%;
 16                 background-color: black;
 17                 /* 註意:要想寬高100%覆蓋,必須脫離文檔流 */
 18                 position: absolute;
 19                 top: 0px;
 20                 left: 0px;
 21                 opacity: 0.1;
 22                 display: none;
 23             }
 24 
 25             /* 表單層 */
 26             .form {
 27                 height: 294px;
 28                 width: 424px;
 29                 background-color: white;
 30                 border: 1px solid lightgray;
 31                 margin-left: -212px;
 32                 margin-top: -140px;
 33                 display: none;
 34                 position: absolute;
 35                 left: 50%;
 36                 top: 50%;
 37             }
 38 
 39             /* 表單層頭部 */
 40             .form .header {
 41                 height: 60px;
 42                 background-color: #F7F7F7;
 43                 line-height: 48px;
 44                 text-indent: 0.5em;
 45             }
 46 
 47             .form .header span {
 48                 color: #666666;
 49                 font-weight: bold;
 50             }
 51             
 52             .header a{
 53                 position: relative;
 54                 left: 321px;
 55                 text-decoration: none;
 56                 color: black;
 57                 font-weight: 400;
 58                 font-size: 30px;
 59                 top: 4px;
 60             }
 61 
 62             /* 表單層主體 */
 63             .body {
 64                 height: 173px;
 65                 padding-top: 35px;
 66             }
 67 
 68             .body div {
 69                 height: 36px;
 70                 line-height: 36px;
 71                 text-indent: 10px;
 72                 margin-bottom: 35px;
 73             }
 74 
 75             .body div input {
 76                 height: 36px;
 77                 width: 300px;
 78             }
 79 
 80             .add {
 81                 text-align: center;
 82             }
 83 
 84             #btnAdd {
 85                 height: 36px;
 86                 width: 170px;
 87             }
 88             
 89             /* 原始層 */
 90             .original{
 91                 height: 234px;
 92                 width: 369px;
 93                 margin: 200px auto;
 94                 
 95             }
 96             /* 添加數據按鈕 */
 97             .original input{
 98                 height: 32px;
 99                 width: 112px;
100                 font-weight: bold;
101                 line-height: 32px;
102                 font-size: 17px;
103             }
104             table{
105                 width: 100%;
106                 border-collapse: collapse;
107             }
108             thead{
109                 height: 50px;
110                 background-color: #0099CC;
111                 color: white;
112             }
113             tr{
114                 height: 42px;
115                 line-height: 42px;
116             }
117             th,td{
118                 border: 1px solid #D0D0D0;
119                 text-align: center;
120             }
121             tbody{
122                 color: #404060;
123                 font-size: 10px;
124                 background-color: #F0F0F0;
125             }
126             .get{
127                 color: #0050EF;
128             }
129         </style>
130         <script src="jquery-1.12.2.js" type="text/javascript" charset="utf-8"></script>
131         <script type="text/javascript">
132             $(function(){
133                 //點擊添加數據,彈出表單層和遮蓋層
134                 $("#btnAddData").on("click",function(){
135                     $(".cover").show();
136                     $(".form").show();
137                 });
138                 //點擊"×",隱藏表單層和遮蓋層
139                 $(".header a").on("click",function(){
140                     $(".cover").hide();
141                     $(".form").hide();
142                 });
143                 //點擊"添加"按鈕,給表格中添加數據
144                 $("#btnAdd").on("click",function(){
145                     var tr=$("<tr></tr>");
146                     var item=[];
147                     item[0]=$(".course input").val();
148                     item[1]=$(".academy input").val();
149                     item[2]="GET";
150                     for(var i=0;i<3;i++){
151                         var td=$("<td></td>");
152                         td.text(item[i]);
153                         tr.append(td);
154                         if(i==2){
155                             td.addClass("get");
156                         }
157                     }
158                     $("tbody").append(tr);
159                 });
160                 //點擊"GET",刪除所在行
161                 $("tbody").on("click",".get",function(){
162                     $(this).parent().remove();
163                 })
164             });
165         </script>
166     </head>
167     <body>
168         <!-- 遮蓋層 -->
169         <div class="cover"></div>
170         
171         <!-- 表單層 -->
172         <div class="form">
173             <!-- 表單層頭部 -->
174             <div class="header">
175                 <span>添加數據</span>
176                 <a href="javascrit:void(0)">×</a>
177             </div>
178             <!-- 表單層主體 -->
179             <div class="body">
180                 <!-- 課程名稱 -->
181                 <div class="course">
182                     <span>課程名字:</span><input type="text" id="" placeholder="請輸入課程名稱" />
183                 </div>
184                 <!-- 所屬學院 -->
185                 <div class="academy">
186                     <span>所屬學院:</span><input type="text" id="" value="傳智播客-前端與移動開發學院" />
187                 </div>
188                 <!-- 添加按鈕 -->
189                 <div class="add">
190                     <input type="button" id="btnAdd" value="添加" />
191                 </div>
192             </div>
193         </div>
194     
195         <!-- 原始層 -->
196         <div class="original">
197             <input type="button" id="btnAddData" value="添加數據" />
198             
199             <table cellspacing="0" cellpadding="0">
200                 <!-- 表格頭部 -->
201                 <thead>
202                     <tr>
203                         <th>課程名稱</th>
204                         <th>所屬學院</th>
205                         <th>已學會</th>
206                     </tr>
207                 </thead>
208                 <!-- 表格主體 -->
209                 <tbody>
210                     <tr>
211                         <td>JavaScript</td>
212                         <td>傳智播客-前端與移動開發學院</td>
213                         <td class="get">GET</td>
214                     </tr>
215                     
216                     <tr>
217                         <td>css</td>
218                         <td>傳智播客-前端與移動開發學院</td>
219                         <td class="get">GET</td>
220                     </tr>
221                     
222                     <tr>
223                         <td>html</td>
224                         <td>傳智播客-前端與移動開發學院</td>
225                         <td class="get">GET</td>
226                     </tr>
227                     
228                     <tr>
229                         <td>jQuery</td>
230                         <td>傳智播客-前端與移動開發學院</td>
231                         <td class="get">GET</td>
232                     </tr>
233                     
234                 </tbody>
235             </table>
236         </div>
237     </body>
238 </html>        
239     
240     
241     

註意:

網頁結構佈局

在給”GET“綁定點擊事件,註意從父級元素開始給子級元素綁定事件,否則點擊事件會出現bug

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 實現 iframe 的自適應高度,能夠隨著頁面的長度自動的適應以免除頁面和 iframe 同時出現滾動條的現象。 (需要只有iframe出現滾動條) 剛開始以為是很小的問題一直沒註意,但是經常頁面比較高的只能顯示一半,後來也在網上搜了很多解解辦法,一直沒真正解決,下麵是我在網上搜到的方法: 下麵是我 ...
  • 今天來講一下ajax的有關知識點。 ajax概念 ajax全稱叫 Asynchronous JavaScript and XML ,意思是非同步的 JavaScript 和 XML。 ajax是現有標準的一種新方法,不是編程語言,可以在不刷新網頁的情況下,和伺服器交換數據並且更新部分頁面內容,不需要任 ...
  • confing/index.js 文件裡面的 useEslint 改成false就可以關閉代碼檢查了 不過為了代碼的規範性,不建議關閉! ...
  • 打開https://www.iconfont.cn/網址登錄後選擇你需要的圖標添加到購物車中 點擊下載代碼或者添加到項目後再下載代碼,再找到之前下載的的文件,拷貝到項目中 ...
  • 1. css 儘可能的放到head裡面,且避免css表達式 【@media 類似】 2. js 儘可能的放到</body>之前 <script>do something</script></body></html> 3. 儘可能的減少圖片的使用,併在實際需要使用圖片的地方在css定義好img的尺寸。 ...
  • 所有基礎課程鏈接: 1.JavaScript基礎視頻教程總結(001-010章) 2.JavaScript基礎視頻教程總結(011-020章) 3. JavaScript基礎視頻教程總結(021-030章) 4. JavaScript基礎視頻教程總結(031-040章) 5. JavaScript基 ...
  • 預覽鏈接:https://www.vanwee.cn/%E6%BB%9A%E5%8A%A8%E7%9B%91%E5%90%AC/ 使用方法: 在想要添加動畫的元素上添加class類名:vanwee 由於我只需要從下漸現向上移動的效果,所以從原博主轉載過來做了調整,大家有不明白的地方建議查看轉載來源博 ...
  • 創建 function 對象的兩種方法: 方式一(推薦) 方式二:var func2 = new Function("參數1", "參數n","函數體"); arguments 對象 獲得參數的個數 獲得參數的個數和值的總額 控制拋出異常 自執行函數 instanceof 用於判斷一個變數是否某個對 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...