2016-02-19 35 views
-4

我只是將其添加到內部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; 
} 
+1

請提供一個[mcve] –

+0

你需要更多的代碼。 – thatOneGuy

+0

這是我的整個功能,它的工作原理,但onshow jquery方法不起作用 –

回答

1

由於您在問題中標記了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); 
} 

如果你不知道很多jQuery的這可能會造成混淆,所以我希望你知道的基本知識。在這裏,我創建了一個新的DIV(jQuery方法[$],當傳遞一個元素的開放標籤時,將創建一個代表該元素的新jQuery對象),將類玻璃添加到DIV中,並添加一個段落班級聊天和傳遞給placeChatBubbleOnScreen方法的文本。在創建DIV之後,在附加了消息的段落中,我將DIV附加到ID爲MenuBackground的元素。然後,我設置一個超時時間,以便消息在屏幕上保持2秒(2000毫秒),然後慢慢地淡出。

當然,有很多不同的方法可以做到這一點,就像編碼中的大多數事情一樣,但這種方式很有效,而且非常簡潔。你可以在這裏看到一個小提琴:https://jsfiddle.net/jy0znq0c/

+0

ooooooooohhhhhhhhh!這很有道理!是的,我對jQuery非常陌生,幫了大忙!應該很明顯,我應該只是更新了menubackground。萬分感謝! –