JavaScript中的奇怪行为

JavaScript中的奇怪行为,javascript,jquery,Javascript,Jquery,我有两个元素——“span”(名为“divLikedX”)和“a”(名为“aLikeX”)。我有以下javascript(通过“a”单击发生): 如果我删除$(“#like”+CommentID).text('nothing')和$(“#Like”+CommentID).text('Like')字符串我得到了正确的行为。但对于这些字符串,它只在alert($(“#divLiked”+CommentID.).is(':visible')==“true”之后的前两次单击中正常工作。为什么?你似乎不是

我有两个元素——“span”(名为“divLikedX”)和“a”(名为“aLikeX”)。我有以下javascript(通过“a”单击发生):


如果我删除
$(“#like”+CommentID).text('nothing')
$(“#Like”+CommentID).text('Like')字符串我得到了正确的行为。但对于这些字符串,它只在
alert($(“#divLiked”+CommentID.).is(':visible')==“true”
之后的前两次单击中正常工作。为什么?

你似乎不是唯一一个有这个问题的人:cf

当一个display:none元素附近没有可见元素时,问题似乎附加在IE8中。这似乎愚弄了检测:可见的jquery算法

我可以建议您使用类而不是:可见和:隐藏进行测试:

if ($("#divLiked" + CommentID).hasClass('like')) {
      $("#divLiked" + CommentID).removeClass('like').show();
      $("#aLike" + CommentID).text('Unlike');
} else {
      $("#divLiked" + CommentID).addClass('like').show();
      $("#aLike" + CommentID).text('Like');
}
我希望这能帮助你


杰罗姆·瓦格纳(Jerome Wagner)

你似乎不是唯一一个有这个问题的人:cf

当一个display:none元素附近没有可见元素时,问题似乎附加在IE8中。这似乎愚弄了检测:可见的jquery算法

我可以建议您使用类而不是:可见和:隐藏进行测试:

if ($("#divLiked" + CommentID).hasClass('like')) {
      $("#divLiked" + CommentID).removeClass('like').show();
      $("#aLike" + CommentID).text('Unlike');
} else {
      $("#divLiked" + CommentID).addClass('like').show();
      $("#aLike" + CommentID).text('Like');
}
我希望这能帮助你


Jerome Wagner

提示:第二行可以替换为
if(CommentID)
我唯一的建议是在开始和每次单击后使用FF或chrome“检查元素”,以查看div获得的属性。这两个元素中的任何一个是另一个的父元素吗?为什么是FF或chrome?我在IE 8.0中遇到了问题,没有其他人的家长。看起来,问题是因为这个链接与单击的位置相同。但是如何解决…提示:第二行可以替换为
if(CommentID)
我唯一的建议是在开始和每次单击后使用FF或chrome“检查元素”,以查看div获得的属性。这两个元素中的任何一个是另一个的父元素吗?为什么是FF或chrome?我在IE 8.0中遇到了问题,没有其他人的家长。看起来,问题是因为这个链接与单击的位置相同。但如何解决。。。。