我有一个应用程序,需要将“ontouchstart”属性添加到每个锚点,以便拥有锚点:活动的CSS状态才能在iOS设备上运行。
麻烦的是整个应用程序在DOM加载后通过AJAX加载内容,这意味着任何$(selector).attr('ontouchstart','')
调用只能在初始屏幕上运行,而不是稍后通过AJAX添加的内容。
因为每个屏幕都是由单独的函数加载的(在某些情况下是由函数本身构造的)我想找到一个解决方案,它允许一个适用于所有锚点的jQuery或JavaScript调用,甚至是那些在DOM之后添加的锚点加载而不是通过每个函数并单独添加调用(有数百个)。
这甚至可能吗?任何帮助将不胜感激。
答案 0 :(得分:2)
答案 1 :(得分:2)
您可以尝试DOMNodeInserted事件:
$(document).bind('DOMNodeInserted', function(event) {
if (event.target.nodeName == 'A') {
$(event.target).attr('ontouchstart','');
}
});
当任何类型的节点添加到DOM时,事件本身将触发,代码只测试节点名称(标记)并添加属性。
答案 2 :(得分:1)
live()和delegate()事件就是你要找的东西。