6***@qq.com
6***@qq.com
  • 发布:2017-03-13 12:04
  • 更新:2017-03-13 12:41
  • 阅读:1957

怎么给下拉刷新出来的dom添加tap事件

分类:MUI

我现在需求是在下拉出来的那些列表的左侧加上checkbox,而这些checkbox我是用div包裹起来的,onclick事件添加到div上在手机端没用.只好用each但是每次刷新又要把上面的遍历了一遍,所以前面的div会绑定多个事件,于是我就想在tap事件绑定之前移除掉所有事件,但是已经加载出来的div上面的tap事件还是有两个.(求指教,才开始做手机端,不胜感激)代码如下(列出的是下拉加载成功的代码)```javascript
// 上拉加载后,渲染数据
var onPagingSuccess = function (data) {
// 记录返回的page对象
page = data.obj;
var DataList = data.obj.content;
var table = document.body.querySelector('.mui-table-view');
if(DataList!=null){
var table = document.body.querySelector('.mui-table-view');
for(var i = 0; i<DataList.length; i++){
var li = document.createElement('li');
li.className = 'mui-table-view-cell mui-media';
li.innerHTML = '<div class="checkboxposition">'
+'<input value="'+DataList[i].id+'" type="checkbox">'
+'</div>'
+'<a class="mui-navigate-right" href="rate-detail.html" data-id="'+DataList[i].id+'">'
+'<img class="mui-media-object mui-pull-left" src="'+DataList[i].thumbnail+'">'
+'<div class="mui-media-body" style="margin-left:20x">'+DataList[i].depa + '-' + DataList[i].dest
+'<p class="mui-ellipsis">'+DataList[i].airline+'</p>'
+'<p class="mui-ellipsis">航期:'+DataList[i].duration+'天</p>'
+'<p class="price">'+DataList[i].basePrice+'元/KG'+'</p>'
+'</div></a>';
table.appendChild(li);
}
}
mui(".mui-table-view-cell").each(function(){
mui(this).on("tap",".checkboxposition",function(){
alert("aaa");
mui(this).off('tap','.checkboxposition',function(){
});
});
});

        };
2017-03-13 12:04 负责人:无 分享
已邀请:
chender

chender - 与人为善

使用事件委托机制,mui(xxx).on("tap","xxxx",function(){
})

  • 6***@qq.com (作者)

    ok,我试试

    2017-03-13 13:50

  • 6***@qq.com (作者)

    是的,我多此一举了,忘了还有委托这么一说了,因为自己平时写前端不是很多,所以有点犯迷糊,谢谢了

    2017-03-13 13:55

156359098

156359098

干嘛把多个不同的事件绑定在同名的div上?你可以专门加一个class(没有样式)专门用来绑定事件嘛!刷新之后去除之前的class(绑定了事件1),添加checkbox之后再添加一个不同的class用来绑定事件2。
没必要移除掉所有事件。
动态添加的元素用on()绑定事件:
例如:mui('#OA_task_1').on('tap', '.mui-slider-handle', function() { });

  • 6***@qq.com (作者)

    好的,解决的,谢谢

    2017-03-13 13:55

该问题目前已经被锁定, 无法添加新回复