jquery学习记录一:jquery动态添加html元素后设置其绑定事件

1. jquery动态添加html元素(例如:)

<div id="testdiv">

<ul></ul>

</div>

假设我们要给ul动态添加的<li>绑定click事件形成如下结果

<div id="devices_div">

<ul>

<li name="apple">apple</li>

<li name="pear">pear</li>

</ul>

</div>

<script>

function test(name){

alert("I‘m "+name);

}

2. 用 on方法 设置点击事件

$("#devices_div ul").unbind(‘click‘).on("click","li", function() {
   var chooseItemStatus = $(this).attr(‘class‘);
   var deviceId = $(this).attr("deviceid");

if (chooseItemStatus == "ChooseListItem") {
       $(this).attr(‘class‘, ‘ChooseListItem Choosed‘);
       deviceIds.push(deviceId);
   } else {
       $(this).attr(‘class‘, ‘ChooseListItem‘);
       // 删除选中的元素
       for (var i = 0;i < deviceIds.length; i++) {
           if (deviceIds[i] == deviceId) {
               deviceIds.splice(i, 1);
               break;
           }
       }
   }
});

时间: 2024-10-01 07:41:33

jquery学习记录一:jquery动态添加html元素后设置其绑定事件的相关文章

jQuery动态添加html元素后,响应事件的问题记录

var li =     "<li>" +     "<a>" +        // 缩略图 点击部分 index='" + i + "'        "<span class='CameraImg' type='play' index='" + i + "'>" +          "<img src='/HiHomeBabyMS/Public/i

jQuery对 动态添加 的元素 绑定事件(on()的用法)

从jQuery 版本 1.7 起,on() 方法是向被选元素添加事件处理程序的(官方推荐)首选方法. 当浏览器下载完一个页面的时候就开始渲染(翻译)HTML标签,然后执行css.js代码,在执行js代码的时候就注册了相应绑定的事件,我们平常用jQuery给HTML标签绑定(单击)事件是一般这样写 $("#btnId").click(function () { //触发事件后 逻辑 });  但是对用js动态添加的元素 是无效的,即没有绑定单击事件,所以对于动态添加的标签需要用on()来

jQuery给动态添加的元素绑定事件的方法

jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定.在1.7版本以前使用live.但是在1.8版本以后推荐使用on.这里介绍jQuery中如何给动态添加的元素绑定事件在实际开发中会遇到要给动态生成的html元素绑定触发事件的情况 例如 1 <div id="testdiv"> 2 <ul></ul> 3 </div> 需要给<ul>里面动态添加的

jQuery获取动态添加的元素,live和on的区别

今天给大家说一下如果用jQuery获取动态添加的元素,通常如果你在网页上利用jQuery添加一个元素,那么用平常的jQuery获取元素的方法无效的获取不到的.可以用以下的方法获取动态元素!假设我们现在需要获取网页动态添加的div元素,并绑定click事件! 在jQuery1.9版本以前,可以用live方法: $('div').live('click' function () { // }); 在jQuery1.9版本以后,live方法被删除,用on方法来代替: 如果你用这样使用on方法的话,那么

jQuery学习记录1

jquery 和 js css里面都是坑呀 this.style.backgroundColor 和 css {background:#8df;} 是冲突的,用了前者,再$(this).addClass("css class name");效果显示不出来. http://youchenglin.iteye.com/blog/685026 前他的一些内容参见下列代码 <!DOCTYPE html> <html> <head> <meta char

Jquery 动态添加删除元素 用js添加的元素无法删除问题

用jquery方法的绑定侦听和销毁来解决动态div的增加删除: 正确代码: <script type="text/javascript" > $(document).ready(function(){  bindListener(); }) function addimg(){  $("#mdiv").append('<div ><input type="file" name="img[]" /&

给Jquery动态添加的元素添加事件

给Jquery动态添加的元素添加事件 我想很多人都会向我一样曾经 被新元素的事件绑定困惑很久也就是在页面加载完成后给元素绑定了事件,但又新增加的元素上却没有绑定任何事件. js的事件监听跟css不一样,css只要设定好了样式,不论是原来就有的还是新添加的,都有一样的表现.而事件监听不是,你必须给每一个元素单独绑定事件. 常见的例子是处理表格的时候.每行行末有个删除按钮,点了这个能够删除这一行. <table>    <tbody>        <tr>        

WEB前端技巧之JQuery为动态添加的元素绑定事件

jquery 为动态添加的元素绑定事件 如果直接写click函数的话,只能把事件绑定在已经存在的元素上,不能绑定在动态添加的元素上 可以用delegate来实现 .delegate( selector, eventType, handler ) 例如示例: $('someUlSelector').delegate('someLiSelector','click',function(){ //codes... //$(this) for the current jquery instance of

jQuery动态添加的元素绑定事件处理函数代码

jQuery动态添加的元素绑定事件处理函数代码 作者: 字体:[增加 减小] 类型:转载 有一段时间没用jquery了,今天又碰到这个问题.当时是知道有livejquery可以解决.但是我并不喜欢为了这个而另外加载一个. 我当时的处理方法是在添加的时候手工绑定事件处理函数.不过新版的jquery已经添加了这个功能.我们已经不需要为此烦恼了. 参考:http://api.jquery.com/live/ 以前我们定义事件,比如为元素定义单击事件是这样写的: 复制代码 代码如下: $('input'