猿问

ajax加载出来的html绑定事件

一个博客列表样式的网站,文章列表采用ajax下拉加载。ajax加载的html怎么绑定一个jq事件呢?
在网上查了很多资料。都说是用.on 我测试了.on是可以,但是我这个需求跟网上说的又不太符合,所以只好前来提问。

html部分:

<!--一个文章列表模块开始---><dl class="post">
    <h2>标题</h2>
    <a href="javascript:;"  class="test-on" >anniu</a>
    <div style="display:none" class="js-box">js操作内容块</div></dl><!--一个文章列表模块结束--->

要的效果,点击"test-on"展开"js-box"。文章模块的".post"是ajax下拉加载的。

我写的js代码:

$(".post").each(function(){ 
    var _this = this
    $(this).on("click",".test-on",function(){
        $(_this).find(".js-box").fadeToggle();
    })
});

对比网上找的资料,我的疑问点是:怎么让点击按钮点击后只在其所在对应的文章模块内生效?


精慕HU
浏览 737回答 1
1回答

慕村225694

如果.post是Ajax加载的,那么你应该把事件绑到它的父元素上。比如:$('#root').on('click',&nbsp;'.test-on',&nbsp;function()&nbsp;{&nbsp;//这里假设.post的父元素是#root &nbsp;&nbsp;&nbsp;&nbsp;$(this).next('.js-box').fadeToggle();&nbsp;//$(this)即是event.target,当前点击的目标元素}不用循环绑定,这段写在ready回调里就可以了。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答