[英]what am I doing wrong? No errors
function showComments(wallID){
$.ajax({
url: "misc/showComments.php",
type: "POST",
data: { mode: 'ajax', wallID: wallID },
success: function(msg){
var $msg = $('#showWallCommentsFor'+wallID).find('.userWallComment');
// if it already has a comment, fade it out, add the text, then toggle it back in
if ( $msg.text().length ) {
$msg.fadeOut('fast', function(){
$msg.text( msg ).slideToggle(300);
});
} else {
// otherwise just hide it, add the text, and then toggle it in
$msg.hide().text( msg ).slideToggle(300);
}
}
});
}
msg, the response i get: ( firebug ) 味精,我得到的响应:(firebug)
<span class='userWallComment'>
<span style='float: left;'>
<img style='border: 1px solid #ccc; width: 44px; height: 48px; margin-right: 8px;' src='images/profilePhoto/thumbs/noPhoto_thumb.jpg'>
</span></span>
<span style='font-size: 10px; margin-bottom: 2px;'>
<a href='profil.php?id=1'>Navn navn</a> - igår kl. 01:55
</span>
<br>
DETTE ER EN TEST
<br>
<div class="clearfloat"></div>
</span>
It sends and execute the ajax call properly, and it have something in response, but it doesnt toggle it? 它发送并正确执行ajax调用,并且有响应,但是没有切换?
This is the div: 这是div:
<div id="showWallCommentsFor<?php echo $displayWall["id"]; ?>" style="display: none;">
</div>
Your if
- else
statement has a flaw: 您的
if
- else
语句有一个缺陷:
if ( $msg.text().length ) {
// ...
} else {
// $msg has a length of ZERO by definition here!!!
$msg.hide().text( msg ).slideToggle(300);
}
The very first time the AJAX call is fired #showWallCommentsFor
is empty, so it doesn't have .userWallComment
inside it so, $msg
will not be defined. 第一次触发AJAX调用时,
#showWallCommentsFor
为空,因此其中没有.userWallComment
,因此不会定义$msg
。
You should add text directly to the original div in your else
, using: 您应该使用以下命令将文本直接添加到
else
的原始div中:
if ( $msg.text().length ) {
// ...
} else {
// otherwise just hide it, add the text, and then toggle it in
// You cannot use $msg here, since it has a length of 0.
// Add text directly to the original div instead.
// You do not need to hide the DIV first since it is already
// invisible.
$('#showWallCommentsFor'+wallID).text( msg ).slideToggle(300);
}
Finally, in your else
, there's no need to .hide()
the #showWall...
div, since the div is orginally invisible due to style="display: none;"
最后,在您的
else
,不需要#showWall...
.hide()
#showWall...
div,因为div由于style="display: none;"
而在div上是不可见的style="display: none;"
. 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.