基于jquery的on和click的區(qū)別詳解
使用jQuery寫js時(shí),有些用on寫行為函數(shù),有些用click,弄清二者區(qū)別很重要。
以下是用于測(cè)試二者區(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>點(diǎn)擊生成新按鈕。NewOn生成的Delete按鈕行為用on()實(shí)現(xiàn),NewClick生成的Delete按鈕行為用click()實(shí)現(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>動(dòng)態(tài)添加的HTML元素click<button class="deleteclick">Delete</button></li>');
});
$("#newon").click(function(){
$(".li").append('<li>動(dòng)態(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();
});
頁面加載后,點(diǎn)擊NewOn和NewClick按鈕,頁面如下圖所示。

現(xiàn)象:
原先的HTML元素點(diǎn)擊其身后的Delete按鈕就會(huì)被刪除。而動(dòng)態(tài)添加的HTML元素,使用click()這種寫法,點(diǎn)擊Delete按鈕無法刪除;使用On()方式可以。
原因:
element.click()這種寫法不支持給動(dòng)態(tài)元素或樣式綁定事件。支持給動(dòng)態(tài)元素綁定事件的是.live()和.on()。live在jQquery1.7后就不推薦使用了。使用.on()時(shí)注意,on前面的元素必須在頁面加載的時(shí)候就存在DOM里面。
以上這篇基于jquery的on和click的區(qū)別詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
jquery自定義插件開發(fā)之window的實(shí)現(xiàn)過程
這篇文章主要介紹了jquery自定義插件開發(fā)之window的實(shí)現(xiàn)過程的相關(guān)資料,需要的朋友可以參考下2016-05-05
jquery 步驟進(jìn)度軸插件的實(shí)現(xiàn)代碼
今天給大家分享一個(gè)jquery插件之步驟進(jìn)度軸的實(shí)現(xiàn)思路,這個(gè)功能在一些網(wǎng)站注冊(cè)賬號(hào)時(shí)一般都會(huì)用到,今天就通過實(shí)例代碼給大家詳細(xì)介紹下,感興趣的朋友跟隨小編一起看看吧2021-05-05
jquery實(shí)現(xiàn)漫天雪花飛舞的圣誕祝福雪花效果代碼分享
這篇文章主要介紹了jquery實(shí)現(xiàn)漫天雪花飛舞的圣誕祝福雪花效果,很浪漫,感興趣的小伙伴們可以參考一下2015-08-08
jQuery基礎(chǔ)知識(shí)點(diǎn)總結(jié)(DOM操作)
下面小編就為大家?guī)硪黄猨Query基礎(chǔ)知識(shí)點(diǎn)總結(jié)(DOM操作)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06
JQuery select控件的相關(guān)操作實(shí)現(xiàn)代碼
JQuery獲取和設(shè)置Select選項(xiàng)方法匯總?cè)缦拢枰呐笥芽梢詤⒖枷?/div> 2012-09-09最新評(píng)論

