【发布时间】:2012-06-17 19:41:50
【问题描述】:
我有一个 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 而不是 "s。感谢您的帮助!
【问题讨论】:
-
.live()已弃用,请使用.on() -
而且您不应该将
("#id")与('#id')混用,只使用'用于javascript 和"用于文本。 -
显示的详细信息不足以识别问题。发布一些html。还可以在单击处理程序中尝试警报或 console.log() 以查看它是否正在触发
-
@AndreaTurri
use just ' for javascript and " for text是什么意思? :) -
页面上是否有超过 1 个“.tooltip-e”元素?你确定 Tipsy 只在一个元素上工作吗?