游小林
2017-03-22 13:37
采纳率: 25%
浏览 3.6k

js动态生成的HTML标签无法绑定事件

ul 里面的 li 是ajax接收后台数据动态生成的,对生成的所有 li 绑定 hover 事件该怎么绑定
如果数据是写死在页面上的话,可以这样绑定,能成功绑定
$(".ul-Brand li").hover(function(){})
但是 li 是动态生成的 就绑定不成功了,
我用
$(".ul-Brand").on('hover','li',function(){})
或者
$(".ul-Brand").delegate('hover','li',function(){})
都没绑定成功
该怎么绑定

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 泪一颗独秀 2017-03-23 02:53
    已采纳

    我曾经有过一次经验,因为头部和尾部是经过load加载到页面中,头部中的登陆按钮是后面生成的,所以$('#bt-login').click(function(){}这个方法没有用,
    所以只能把单击事件委托给DOM树上已经存在的元素,即div#header,这样$('div#header').on('click','#bt-login',function(){}是可以实现的

    2 打赏 评论
  • 一个人的约会 2017-03-22 14:09

    1、动态生成以后再绑定 2、看看是不是绑定过了,先$(".ul-Brand").off("hover",li)再$(".ul-Brand").each(function(){
    $(this)..on('hover','li',function(){})
    })

    打赏 评论
  • 游小林 2017-03-28 13:02

    还可以在生成的代码上面直接添加事件 如 onclick=“fun()”,然后只需要在js里处理函数 fun 就行了
    htm代码l:

    修改

    js代码:
    function changeIt(){
    alert("change me ?");
    };

    打赏 评论

相关推荐 更多相似问题