移动端jq及zepto事件绑定

Posted 姚玉倩的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动端jq及zepto事件绑定相关的知识,希望对你有一定的参考价值。

最近做移动端网页,用到了zepto.js , 其大致用法跟 jquery 差不多,但是在时间绑定的时候被困了好久的坑。

这里说的主要是给未来元素绑定事件。未来元素:这里指的是通过 ajax 请求得到数据以后,再渲染到页面的新的组件或元素。

 

比如说原始页面是这样的:

<html>

<head>

……

</head>

<body>

<ul class=“ul_wrap”>

<li class=“li_item”>原始内容1</li>

<li class=“li_item”>原始内容2</li>

</ul>

</body>

</html>

然后再通过请求数据,想页面中插入新的li标签及内容:

Js中是这样的:

success: function( res ){

var appendObj = $(“.ul_wrap”);

if( res.code == 1 ){

var liLists = res.data;

for( var i=0; i<liLists.length; i++ ){

var new_li_item = “<li class=‘new_li_item’>”+ liLists[i] +“</li>”;

appendObj.html( appendObj.html() + new_li_item );

}

}

}

延迟加载完以后,带有 new_li_item 类的就是上文所说的未来元素,比如说现在要给这些未来元素绑定点击事件,在jq中这样绑定:

$(“.ul_wrap”).delegate(“.new_li_item”, “click”, function(){

// do something

})

zepto中,以上jq的绑定方法无效,必须这样绑定:

$(“body .ul_wrap”).on(“click”, “.new_li_item”, function(){

// do something

})

以上是关于移动端jq及zepto事件绑定的主要内容,如果未能解决你的问题,请参考以下文章

移动端-点透的解决方法

移动端-点透问题 巧妙解决

非常适合新手的jq/zepto源码分析06 -- 事件模型

jQuery,zepto手机端用on将子元素事件委托给body或document无效

jq事件绑定

前端: jquery事件绑定及选择器使用动态变量