jquery 如何做到比较完美的动态初始化组件.

2015-10-23 16:35:19 +08:00
 letitbesqzr

比如日期组件,将一个 input 初始化成一个组件:

$("#xxx").datetimepicker();

但四处都这样写,感觉太乱了,写了个方法:

$(document).on("focus", "[data-datetimepicker]", function () {
$(this).datetimepicker({
timepicker: false,
format: 'Y/m/d',
mask: true,
lang: 'ch'
});
});

加上 data-datetimepicker 就能自动初始化了,但是绑定的是 focus 事件,日期组件表现的还不错,每次点击他的时候去执行这个。。
但后来需要弄一个 select2 组件的了,也就是 V2EX 发主题选择节点那个插件,每次点击的时候去初始化就显得好奇怪,有没有办法比较完美的实现?

2773 次点击
所在节点    jQuery
6 条回复
sox
2015-10-23 16:44:34 +08:00
如果你的 element 不是 ajax 加载出来的,写一次

$(function () {
$("#xxx").datetimepicker();
})

不就行了,同理 select2
letitbesqzr
2015-10-23 16:48:50 +08:00
@sox 就是通过 ajax 加载出来的...大部分情况都是
sunjourney
2015-10-23 17:29:10 +08:00
不用 on 用 one 啊,平时多看看 jq 文档
letitbesqzr
2015-10-23 17:40:00 +08:00
@sunjourney 对.用 one 可以解决重复初始化的问题,但还是没办法 动态把 ajax 加载出来的实时初始化?
sox
2015-10-23 17:40:30 +08:00
@sunjourney .one 和这个帖子有什么联系...
sunjourney
2015-10-23 21:54:33 +08:00
ajax 写 success 初始化

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/230513

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX