有没有绑定Class后自动触发JS的通用方法(htc不能用了,不习惯啊)

yangwally 2014-02-12 07:09:38
以前习惯什么都用HTC,css里写好behivior 元素绑定css后就直接触发htc里的oncontentready,
但自从微软宣布IE10开始不支持htc了,感觉好多都要重写,而且不方便。
虽然用 JQ的
$('.testclass').live("click", function () {
alert("aaaa")
});
勉强可以实现以前部分HTC的功能。
但oncontentready如何可以很好的解决,虽然我可以addClass后手动添加初始化的语句,不知道有没有更好的办法,addClass后自动触发某个事件。
PS:我试过$('.testclass').live("load",function....// 除了框架、图片等元素有load,大部元素分都没有这个事件。contentready 或 read 也都没有。
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2014-02-13
  • 打赏
  • 举报
回复
IE有个onpropertychange事件,不知道高版本的IE是否支持。。楼主可以测试下,只要是任何属性更改都会触发
<div id="dv" onpropertychange="alert('属性更改了')"></div>
<script>
    window.onload = function () {
        document.getElementById('dv').className = 'abc'
        document.getElementById('dv').innerHTML = 'abc'
        document.getElementById('dv').setAttribute('chr', 1);
    }
</script>
yangwally 2014-02-13
  • 打赏
  • 举报
回复
引用 4 楼 xcx573 的回复:
这样么?

$("#submit_new_post_form").addClass("red").click();
不是这个意思,因为以前一直习惯使用htc, 这样在样式表里写behivior :url(xxx.htc) ,之后只要是页面任何元素绑定该class(无论是初始状态下,还是 addClass 或是 className="XX") 都会触发htc文件里的oncontentready。 现在微软宣布以后不支持htc结构了(我总不能阻止客户升级IE到10吧),导致我现在要把以前的项目里的htc格式全改掉,为了找寻损失最小的解决方案,目前我的设想是,调用端不动(调用端大多都是 addclass 或className="" 之类的),只改掉几个HTC文件,所以才发帖询问的。 总之就是,addClass("XXX") 或是 className="XXX" 之后,自从触发一个初始化事件 PS:你的方法和我前面说的类似(添加class 后手工再加一条转到初始化的方法),依然要,全项目范围搜索关键字,然后一处一处的修改。
肖无疾 2014-02-13
  • 打赏
  • 举报
回复
这样么?

$("#submit_new_post_form").addClass("red").click();
yangwally 2014-02-12
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
一般都是做完处理后再进行相关操作,jquery的live效率不行,少用为好
哦,我只是想用最小的代价,把以前htc 改成 没有htc架构的,live至少可以让我不用修改调用端的代码。我现在急于找到,addClass(或者obj.className="XXX")后可以自动触发的事件,否则我可能要整个项目搜索关键字,然后每处都要修改代码。如果有此类事件,我只要重写几个HTC 改成标准JS 就可以了。 谢谢你的建议,以后新的项目,我会注意不用或少用 live 的
Go 旅城通票 2014-02-12
  • 打赏
  • 举报
回复
一般都是做完处理后再进行相关操作,jquery的live效率不行,少用为好

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧