jQuery 新新增元素事件繫結無效
jQuery中事件繫結,大多使用on就足夠了。
但是對於新新增的元素 on 的繫結事件 會不起作用。
因為 append 中的 節點是在整個文件載入之後才新增的,頁面並不會為未來的元素初始化新增點選事件,因此 這種方式新增的 節點的點選事件是無效的。
解決方法:
事件委託。事件委託就是利用事件冒泡的原理,把事件新增到父元素或祖先元素上,觸發執行效果。
原始碼:
1 $('#ul li').on('click', function() { 2 alert($(this).html()) 3 })
修改為:
$(document).on('click', '#ul li', function() { alert($(this).html()) })
相關推薦
jQuery 新新增元素事件繫結無效
jQuery中事件繫結,大多使用on就足夠了。 但是對於新新增的元素 on 的繫結事件 會不起作用。 因為 append 中的 節點是在整個文件載入之後才新增的,頁面並不會為未來的元素初始化新增點選事件,因此 這種方式新增的 節點的點選事件是無效的。 解決方法: 事件委託。事件委託就是
專案總結之 jquery中,使用append增加新元素時,新增元素的繫結監聽事件失效的解決辦法
$(“outerSelector”).on(“eventType”,“innerSelector”,function(){}); 舉例:如果在一個 中,通過append新增一個id="demo"的按鈕,常用的直接$(“Selector”).on(“eventType”,function
jQuery檢視dom元素上繫結的事件列表
作為技術狂熱分子的職業本能,看到一個技術產品的功能,總會忍不住想知道它是怎麼被實現的。比如我每每看到別人網站一個很炫的介面或者很酷的功能,就忍不住打開了瀏覽器的控制檯。。。 好,不扯遠,說說當你想看到網站上某個元素繫結的事件函式的程式碼時應該怎麼做吧。 檢視原生
jQuery原始碼分析--event事件繫結(上)
上文提到,jquery的事件繫結有bind(),delegate()和one()以及live()方式。我用的jQuery2.1.3版本,live()已經被廢棄了。 bind(),delegate()和one()的內部原始碼。 //7491行 bind
jquery學習筆記之事件繫結on與事件解綁off用法
on()的多事件繫結 之前學的滑鼠事件,表單事件與鍵盤事件都有個特點,就是直接給元素繫結一個處理函式,所有這類事件都是屬於快捷處理。翻開原始碼其實可以看到,所有的快捷事件在底層的處理都是通過一個”on”方法來實現的。jQuery on()方法是官方推
jQuery的4種事件繫結方式的區別
1.bind() bind方法為匹配元素新增一個或多個事件。用法如下: bind(event,data,function) 引數說明: event:必須引數項,新增到元素的一個或多個事件,如click、dbclick等。 data:可選引數項,設計需要傳遞的引數。
angularJS之link函式對元素事件繫結或屬性的操作
var myApp=angular.module('myApp',[]); myApp.directive('hello',function(){ return { restrict:'AE', template:'<div>hello a
微信小程式事件繫結無效
開發十年,就只剩下這套架構體系了! >>>
jquery在ajax新新增的元素後繫結事件click
使用YII在做一個點選小圖,可以在彈出視窗中顯示大圖的功能的時候,發現,GridView首頁面的列表項按點選時一切正常,但按下了下一頁後, 再點選小圖,就不起作用了。原來,這是GridView使用了ajax分頁,分頁後的元素是新增加的,所以不會繫結事件,要改變這樣的狀況,可
Jquery通過append新元素之後事件繫結問題的解決方案:
1、 重複繫結 (DOM載入時,先對DOM中存在的元素進行事件繫結,每次新增的元素時,再對新增元素繫結一次事件) 2、 直接在標籤上新增onclick屬性 3、 事件委託 4、 如果元素是用click事件append進來的,那麼功能函式必須放在這個click事件裡面; 具體程式碼不表,
Jquery通過append新元素之後事件繫結問題的解決方案
昨天在專案中發現一個問題:在DOM載入之後為標籤繫結的事件對於新加進來的標籤並不起作用,通過查詢發現事件並沒有繫結到新加入的標籤,因此今天特意總結一下這種問題的解決方案。 在jquery中,我們通常是在DOM載入完成後,再對元素繫結事件。以下面的情景為例:製作
jquery動態新增元素無法觸發繫結的事件的解決方案。
最近遇到一個問題,即當用jquery動態新增元素後,發現給動態新增的元素卻無法觸發事件。後來在網上查閱了一些資料,發現原來要這樣處理: 先上我出錯的程式碼: <!DOCTY
【前端】vue2.x 配合 bootstrapTable 動態新增元素和繫結點選事件,事件無效 解決
背景: 使用bootstrap-table 表格外掛時,每一行的最後一班會加操作按鈕列。如果不加入vue的話,使用外掛自己的列屬性formatter:function(value, row, index){}即可解決,動態拼接的html元素和對應的點選事件都可以正常使用。問題來了,在使用vue時,點選事
jQuery動態生成的元素如何繫結事件
這段時間在寫程式碼的時候遇到一個問題,通過append()新增的節點,點選事件不起作用。當時我百思不得其解,各種找錯都沒找到錯誤的原因。後來才發現是動態生成節點的問題,還是自己沒有經驗啊。 下面來
React map生成元素新增點選事件繫結this
問題使用.map(function(Item)生成元素新增onClick事件:onClick={this.provinceChange.bind(this, "99")}時,前臺訪問報錯:Uncaught TypeError: Cannot read property 'provinceChange' of
jQuery動態新增li標籤並新增屬性和繫結事件
程式碼如下: <%@page import="java.util.ArrayList"%> <%@ page language="java" contentType="text/h
用jquery給元素動態繫結事件及樣式
網頁輸出的時候,可以用jquery給各種元素繫結事件,或設定樣式。之所以這樣做,好處是節省程式碼,尤其適合元素很多,並且元素的事件對應的函式雷同的情況。看看以下程式碼: <div id="divUserList"> <span><a href
jQuery 插入元素時繫結事件 或 已載入的html繫結事件
//已載入好的$("user-news").click(function(){ alert(""); });<div class="user-center pull-right"> <img class="member-drop-down
append 新增的元素重新繫結事件
在jQuery當中append是動態向頁面中新增元素的常見方法,但是很多時候append新增之後的節點再次繫結事件(比如click)的時候,就會發現click失效,這時候就會涉及到,on()高版本的jQuery中.on()啟用之後bind和live都已經失效。 再說上面的問
jQuery向動態新增的元件繫結事件
jquery中繫結事件一般使用bind,或者click,但是這隻能是對已經載入好的元素定義事件,那些後來新增插入的元素則需要另行繫結。在1.7版本以前使用live。但是在1.8版本以後推薦使用on。 $('body').on('click','.admi