.next还没有处理动态内容

时间:2014-06-24 09:41:07

标签: javascript jquery html

这是帖子请求中的代码块。 JSON回复存储在'数据'

var a=data.Data.overview;
var b=data.Data.extras;
//summary
var result='';
result+='<div class="extra-upper-block">';
result+='<h5 class="extra-head"><i class="'+b[0].icon+' extra-head-icons"></i> '+b[0].category+'<i class="fa fa-pencil edit-prof"></i></h5>';
result+='<div class="extra-sub-block">';
if(b[0][0].summary!=null)
result+='<p id="profile-summary" class="extra-sub-block-summary">'+b[0][0].summary+'</p>';
result+='</div>';
result+='</div><hr class="extra-upper-block-separator">';
$('#profile-extras').append(result);

这很好用。现在我想点击

点击<p>标记
<i class="'+b[0].icon+' extra-head-icons"></i>

这些是我试过的代码

$('.edit-prof').nextAll('.extra-sub-block-summary:first').click();

$('.edit-prof').nextAll('p:first').click();

$('.edit-prof').nextAll('div > .extra-sub-block-summary:first').click();

没有任何作用。为什么p没有被选中?我只在加载动态内容后才执行脚本。

这是小提琴http://jsfiddle.net/4pC3e/

1 个答案:

答案 0 :(得分:1)

你应该使用event delegation

$(document).on("click",".extra-sub-block-summary:first",function(){

});

事件委托允许您将单个事件侦听器附加到父元素,该元素将为匹配选择器的所有子项触发,无论这些子项现在是存在还是将来添加。

修改

|你获得元素的方式是错误的。 试试这段代码

$('.edit-prof').closest("h5").next(".extra-sub-block").find(".extra-sub-block-summary:first").click();

Fiddle