Javascript 为什么这种淡出不起作用?

Javascript 为什么这种淡出不起作用?,javascript,jquery,Javascript,Jquery,我只是将其添加到一个内部html文档中。所以它只想让这个特殊的东西存活10秒。其他人也一样,因为他们代表不同的聊天泡泡 function placeChatBubbleOnScreen(message){ var chatBubble = "<div class= 'glass' onshow = '$(this).fadeOut(1000);'><p class= 'chat'>" + message + "<p></div>";

我只是将其添加到一个内部html文档中。所以它只想让这个特殊的东西存活10秒。其他人也一样,因为他们代表不同的聊天泡泡

function placeChatBubbleOnScreen(message){
    var chatBubble = "<div class= 'glass' onshow = '$(this).fadeOut(1000);'><p class= 'chat'>" + message + "<p></div>";
    //<img class = 'speechBubble' src = '../images/GibberChatBubble.png'/>
    document.getElementById("MenuBackground").innerHTML += chatBubble;
}
功能位置聊天室屏幕(消息){
var chatbuble=“

”+消息+“”; // document.getElementById(“MenuBackground”).innerHTML+=chatbuble; }


既然您在问题中标记了jQuery,我将在这里添加一些jQuery

如您问题的评论所示,没有定义onshow属性,这意味着它本身不会做任何事情。您仍然可以添加一个,但它不会与任何类型的事件侦听器相关联。最好使用jQuery中的.fadeOut(),而不是在侦听器可见时尝试将其与关联

下面是一个很好的jQuery方法来编写您要做的事情:

function placeChatBubbleOnScreen(message){
  var thisDiv = $('<div>').addClass('glass').append(
    $('<p>').addClass('chat').append(message)
  ).appendTo('#MenuBackground');

  setTimeout(function(){thisDiv.fadeOut('slow');}, 2000);
}
功能位置聊天室屏幕(消息){
var thisDiv=$('').addClass('glass').append(
$(“”).addClass('chat').append(消息)
).appendTo(“#MenuBackground”);
setTimeout(函数(){thisDiv.fadeOut('slow');},2000);
}
如果您对jQuery了解不多,这可能会让人困惑,因此我希望您了解基本知识。在这里,我动态创建一个新的DIV(jQuery方法[$],当传递一个元素的open标记时,将创建一个表示该元素的新jQuery对象),将类glass添加到DIV中,并附加一个带有类chat的段落和传递给placechatbubleonscreen方法的文本。创建DIV并在段落中添加消息后,我将DIV附加到ID为MenuBackground的元素中。然后,我设置了一个超时,这样消息将在屏幕上保持2秒(2000毫秒),然后它将慢慢淡出


当然,有很多不同的方法可以做到这一点,就像编码中的大多数事情一样,但这种方法是有效的,而且相当简洁。你可以在这里看到一把小提琴:

请提供一个here is my all function,它可以工作,但是onshow jquery方法不工作。你正在添加一个
onshow
HTML属性。这种属性不存在。HTML!=jQuery.means
onload
maybe?@cyrdd:这对
div
s.ooooooohohhh没有影响!这很有道理!是的,我对jQuery很陌生,这帮了我很大的忙!很明显,tI应该只是更新了菜单背景。非常感谢!