$('#followUser').click(function () {
var userId = $(this).attr('data-userId'),
action = $(this).attr('data-action'),
currentUser = $(this).attr('data-currentUserId'),
elem = $(this);
$.ajax({
method: 'POST',
url: "/sci-profile/profile/follow",
data: {
userId: currentUser,
profileUserId: userId,
action: action
},
success: function(response)
{
elem.parent().load(window.location.href + ' #unFollowUser');
}
});
});
点击按钮后,JS加载了包含其所有内容的新div,这很好,但是在加载新div时出现问题。
JS不认识新的ID
。当我点击新按钮时没有任何反应,因为当新元素不存在时,JS函数已加载。
有没有办法让一些监听器检查新的DIV
的加载,然后加载对应于该元素ID
的JS函数?
答案 0 :(得分:1)
您应该使用委托
例如,你有这个标记
<div id=contentWrapper>
.....some content here....
<button type=button id=followUser></button>
</div>
现在你应该绑定你的事件
$('#contentWrapper').on('click', '#followUser' 'function () {
...code here...
});
答案 1 :(得分:0)
是的,我做到了。
这是html
$('.follow').delegate('div', 'click', function(){
action = $(this).attr('data-action');
elem = $(this);
if (action == 'follow'){
var userId = $(this).attr('data-userId'),
currentUser = $(this).attr('data-currentUserId');
$.ajax({
method: 'POST',
url: "/sci-profile/profile/follow",
data: {
userId: currentUser,
profileUserId: userId,
action: action
},
success: function(response)
{
elem.parent().load(window.location.href + ' #unFollowUser');
}
});
}
if (action == 'unFollow'){
var followsId = $(this).attr('data-followsId');
$.ajax({
method: 'DELETE',
url: "/sci-profile/profile/unFollow",
data: {
followsId: followsId
},
success: function(response)
{
elem.parent().load(window.location.href + ' #followUser');
}
});
}
});
还有JS代码
{{1}}
我希望这会对某人有所帮助。