我有一个div(#replyLoop),当点击它时,链接ID lmor 会从href元素 data-posts 中提取内容。第一次单击时工作正常,但之后无效。我怀疑它与代码的结构有关,而不是与使用的事件有关 - “live”和“click”都有相同的结果,删除return false也是如此;并且只使用链接的data-posts元素并删除href部分。 (返回false;禁用链接的href从触发)。
当谈到js时,我似乎总是想念最明显的事情 - 我想知道这是不是这样。
(tooltip-e确保在加载新内容时调用 tipsy 函数。(工具提示))
“实时”标记 -
$(function(){
$("#lmor").live("click",function() {
$('#replyLoop').load($(this).attr('data-posts'), function(data) {
$('.tooltip-e').tipsy({
gravity: 'e',
fade: true,
html: true
});
});
return false;
});
});
“点击”标记 -
$(function(){
$("#lmor").click(function() {
$('#replyLoop').load($(this).attr('data-posts'), function(data) {
$('.tooltip-e').tipsy({
gravity: 'e',
fade: true,
html: true
});
});
return false;
});
});
关于我缺少的任何想法?
修改 我想通了 - 使用.live的组合并在相应的文件中包含“加载更多”,我已经让它工作了。
问题:它正在被加载的页面之外调用 - 所以当它正在寻找“下一页”时,该“下一页”页面还没有被推送到链接,因为它没有知道它已被装载。
我还标记了使用'而不是's的实时代码。感谢您的帮助!
答案 0 :(得分:1)
如果我们不需要猜测会更容易回答,但这是我的猜测:当你第一次点击时加载到#replyLoop的html中是#lmor吗?我想是的,问题是$(“#mmor”)。live在DOM元素#lmor上设置,然后当你加载新内容然后删除那个dom元素并创建一个新元素。做到这一点的方法是:
$(document).on("click", "#lmor", function...);
这样当你创建新的#lmor时(加载新内容时),它也会获得事件监听器。
优化版可能是:
$("#replyLoop").on("click", "#lmor", function...);
如果#lmor在#replyLoop
中