基于jquery的on和click的區(qū)別詳解
使用jQuery寫js時,有些用on寫行為函數(shù),有些用click,弄清二者區(qū)別很重要。
以下是用于測試二者區(qū)別的HTML代碼。
<!DOCTYPE html> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div> <h1>展示jQuery中on()和click()的區(qū)別</h1> </div> <div> <span>點擊生成新按鈕。NewOn生成的Delete按鈕行為用on()實現(xiàn),NewClick生成的Delete按鈕行為用click()實現(xiàn)。</span> </div> <div class="test"> <button class="new" id="newon">NewOn</button> <button class="new" id="newclick">NewClick</button> <ul class="li"> <li>原先的HTML元素on<button class="deleteon">Delete</button></li> <li>原先的HTML元素click<button class="deleteclick">Delete</button></li> </ul> </div> </body> <script src="/static/js/jquery-3.1.1.min.js"></script> <script src="/static/js/test.js"></script> </html>
js文件如下:
$("#newclick").click(function(){ $(".li").append('<li>動態(tài)添加的HTML元素click<button class="deleteclick">Delete</button></li>'); }); $("#newon").click(function(){ $(".li").append('<li>動態(tài)添加的HTML元素on<button class="deleteon">Delete</button></li>'); }); $(".delete").click(function(){ $(this).parent().remove(); }); $(".li").on('click', ".deleteon", function(){ $(this).parent().remove(); }) $(".deleteclick").click(function(){ $(this).parent().remove(); });
頁面加載后,點擊NewOn和NewClick按鈕,頁面如下圖所示。
現(xiàn)象:
原先的HTML元素點擊其身后的Delete按鈕就會被刪除。而動態(tài)添加的HTML元素,使用click()這種寫法,點擊Delete按鈕無法刪除;使用On()方式可以。
原因:
element.click()這種寫法不支持給動態(tài)元素或樣式綁定事件。支持給動態(tài)元素綁定事件的是.live()和.on()。live在jQquery1.7后就不推薦使用了。使用.on()時注意,on前面的元素必須在頁面加載的時候就存在DOM里面。
以上這篇基于jquery的on和click的區(qū)別詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Jquery中.bind()、.live()、.delegate()和.on()之間的區(qū)別詳解
在我們日常開發(fā)中經常會使用到.bind()、.live()、.delegate()和.on(),有些同學會對這四者存在一些疑慮,所以下面這篇文章主要給大家介紹了關于Jquery中.bind()、.live()、.delegate()和.on()之間區(qū)別的相關資料,需要的朋友可以參考借鑒。2017-08-08從零開始學習jQuery (九) jQuery工具函數(shù)
我們經常要使用腳本處理各種業(yè)務邏輯, 最常見的就是數(shù)組和對象的操作. jQuery工具函數(shù)為我們操作對象和數(shù)組提供了便利條件.2011-02-02基于jQuery實現(xiàn)復選框的全選 全不選 反選功能
本文分享一段基于jQuery實現(xiàn)的復選框全選、全不選、反選功能的代碼,有需要的小伙伴直接帶走吧2014-11-11jQuery ui autocomplete選擇列表被Bootstrap模態(tài)窗遮擋的完美解決方法
這篇文章主要介紹了jQuery ui autocomplete選擇列表被Bootstrap模態(tài)窗遮擋的完美解決方法,本文介紹的非常詳細,解決過程思路明了,需要的朋友可以參考下2016-09-09