当 AJAX 加载内容时,喜欢和删除按钮不起作用
when ajax load content like and delete button not work
嗨,当 ajax 动态加载内容时,每次都会遇到相同的问题,例如:评论或任何帖子,然后一切正常。 但是像按钮这样的评论在我刷新页面之前不起作用.下面我的喜欢脚本帮助我如何解决这个问题
$(".comment_like").click(function()
{
var cID = $(this).attr("ccid");
var cREL = $(this).attr("rel");
var cbox = $(this).attr("box_id");
var cowner = $(this).attr("ownercli");
var cURL='comment_like.php';
var dataString = 'msg_id=' + cID +'&rel='+ cREL+ '&owner='+ cowner+ '&cbox='+ cbox;
if(cREL=='Like')
{
$('#c'+cID).html('Unlike:').attr('rel', 'Unlike').attr('title', 'Unlike');
}
else
{
$('#c'+cID).attr('rel', 'Like').attr('title', 'Like').html('Like:');
}
xhr = $.ajax({
type: "POST",
url: cURL,
data: dataString,
cache: false
}).done(function(htmlc){
$('.cml'+cID).html(htmlc);
});
});
假设 $(".comment_like") 按钮位于从 ajax 调用返回的 HTML 中是否安全?如果是这样,这就是jQuery"on"绑定有用的地方。不是绑定在按钮本身(在加载内容之前不存在),而是将事件侦听器绑定到元素可能最终进入的容器。简而言之,当在该容器上发生单击时,jQuery 会检查单击的元素以查看它是否匹配并触发您的处理程序。
阅读:http://api.jquery.com/on/
这样做是为了动态加载内容,并防止绑定数百个事件处理程序。
基于此,而不是
$(".comment_like").click(function() {...});
尝试
$('#container').on('click','.comment_like',function() {...});
其中 #container 是包含您正在加载的 HTML 的包装器。
单击事件仅绑定到 DOM 中已有的元素。如果从 ajax 调用加载容器,则 click 事件将不会绑定到它。这不是真正的正确IMO,但是您可以通过将单击事件添加到.done函数中来快速解决此问题。完成 ajax 调用后,单击事件将绑定到动态添加到 DOM 的元素。
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 如何从 HTML 查询中删除项目
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 当 AJAX 加载内容时,喜欢和删除按钮不起作用
- 如何使用Instagram API发布喜欢或删除Instagram
- Facebook喜欢聊天,有添加或删除好友的选项