jquery 初始化html元素

//下面这个是button//<buttonclass="but"data-icon="icon-search">Submit</button>//<buttonclas... // 下面这个是button
// <button class="but" data-icon="icon-search">Submit</button>
// <button class="but" data-icon="icon-search">Submit</button>
// 我最终想把button初始化成下面这样
// <button class="but"><i class="icon-search"></i> Submit</button>
// 初始化 class="but" 的所有 button
// 用 .on() 是因为我需要对未来动态添加的元素也能自动适用
// 但是这样程序没有执行, 要实现这个功能, 有没有更好的办法
// 如果我把 .on('load') 换成 .on('click') 鼠标点击就能触发
// 但是一定不能用click来手动触发, 要页面或者未来元素载入以后能自动适用
// 不知道为什么 load 事件就不会触发,

$(document).on('load', '.but', function(){
var $this = $(this);
var icon = $this.data("icon");
// 如果这个button包含 [data-icon=""] 这个属性, 则为这个button添加一个图标
if(icon != "undefined" && icon != null && icon != "") {
var value = $this.html();
$this.data("icon","") // 删除icon属性
.html('<i class="' + icon + '"></i> '+ value); // 把对应的icon写入到button
}
});
我要动态载入的html就是
<button class="but" data-icon="icon-search">Submit</button>
这样的, 然后会自动初始化为这个
<button class="but"><i class="icon-search"></i> Submit</button>
展开
 我来答
网海1书生
科技发烧友

2018-01-26 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
load事件只会发生在以下指定的几种标签或对象中:
APPLET, BODY, EMBED, FRAME, FRAMESET, IFRAME, IMG, LINK, SCRIPT, window
而且也只会发生在首次加载的时候,动态添加的是不会触发这个事件的。
何不换一种思路,就是在动态载入html的同时就把代码改了呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式