2010-04-13 54 views
0

我有一個情況,我應該附加HTML與jQuery。在這個html裏面有一個帶有javascript標籤的鏈接。jQuery追加HTML與JavaScript鏈接

我該如何解決這個問題?

$(".messages-wrapper").append('<li class="chat-wrapper"><a class="chat" href="javascript:openChat('http://domain.com/Messenger.aspx'">Chat öffnen<span></span><small>Chat öffnen</small></a></li>') 

謝謝!!

+1

什麼問題? – 2010-04-13 15:54:25

回答

4

您可以在帶有反斜槓的字符串中轉義單引號或雙引號。

'... href="javascript:openChat(\'http...\')">...' 
2

你只需要使用\'逃脫字符串中的撇號:

$(".messages-wrapper") 
.append('<li class="chat-wrapper"><a class="chat" href="javascript:openChat(\'http://domain.com/Messenger.aspx\'">Chat öffnen<span></span><small>Chat öffnen</small></a></li>'); 
3

你可能有,因爲在字符串中引號的問題。單引號提前終止字符串並導致javascript錯誤。

但是,請考慮在添加html的同時應用hander。

var link = $('<li class="chat-wrapper"><a class="chat" href="http://domain.com/Messenger.aspx">Chat öffnen<span></span><small>Chat öffnen</small></a></li>') 
      .find('a') 
      .click(function() { 
       openChat($(this).attr('href')); 
       return false; 
      }); 
link.appendTo(".messages-wrapper"); 
+1

+1,如果javascript未啓用,將會優雅地退化,不過我猜測聊天頁面需要JS。 – Joel 2010-04-13 20:41:17

+0

@Joel:考慮如何使用Javascript創建的代碼在Javascript未啓用的情況下表現得有點模糊...... – Guffa 2010-04-14 06:03:29

+0

您完全錯過了這一觀點。如果Javascript未啓用,則創建鏈接的代碼不會執行。 – Guffa 2010-04-14 13:16:39

1

只需使用已創建的對象的嵌套後綴來執行單擊操作即可。

$('.messages-wrapper') 
    .append(
    $('<li class="chat-wrapper" />") 
     .append(
     $('<a class="chat" href="http://domain.com/Messenger.aspx"><small>Chat öffnen</small></a>') 
      .click(function(){ 
      openChat(this.href); 
      return false; 
      }) 
    ) 
);

無論如何,這是更容易閱讀的意圖,恕我直言。

+0

+1是非常jQueryie – TehOne 2010-04-14 01:01:40