2010-04-09 118 views
1

我在Drupal中有一個AJAX聊天室模塊,我試圖在用戶單擊Insert Tex時將BBCode stlye tex標籤插入到提交框中。我設法讓下面的代碼第一次工作,但之後當我點擊Insert Tex時,它會將tex標籤插入三次。AJAX jQuery單擊功能事件被觸發兩次的結果

$('#edit-chatroom-message-entry-submit').click(function (e) { 
    e.preventDefault(); 
    e.stopPropagation(); 
    if ($('#edit-chatroom-message-entry-box').val()){ 
    Drupal.chatroom.postMessage($('#edit-chatroom-message-entry-box').val()); 
    $('#edit-chatroom-message-entry-box').val('').focus(); 
    } 
}); 

$('#edit-chatroom-tex-submit').click(function (e) { 
    e.preventDefault(); 
    e.stopPropagation(); 
    $('#edit-chatroom-message-entry-box').val($('#edit-chatroom-message-entry-box').val() + '[tex][/tex]'); 
}); 

如果能夠使代碼正常工作,我將不勝感激。

回答

0

插入符位置設置爲0 jQuery中解決了這一問題:插入符號(0);

+0

添加繪圖畫布我在另一個設置中再次遇到同樣的問題。在jquery中設置插入位置爲0修復了問題: caret(0); – 2010-04-21 21:02:35

1

如果我正確理解你的代碼,你需要這樣的:

var chatbox = $('#edit-chatroom-message-entry-box'); 
var value = chatbox.val(); 

if (value.indexOf('[tex][/tex]') == -1) { 
    chatbox.val(value + '[tex][/tex]'); 
} 
+0

感謝您的回覆伊沃,但我無法讓您的代碼工作。我刪除了第二個函數的最後一行,並添加了代碼,但仍然看到雙重標籤。如果再次點擊,我會看到三重標籤......等等。你能提出其他建議嗎?謝謝。 – 2010-04-09 03:54:41

+0

你可以發佈一個鏈接到你的網頁,以便我可以測試我的代碼。 – 2010-04-09 04:08:25

+0

當然,網址是'http:// sharpermath.com/drupal/node/24'我敢肯定你可以用螢火蟲來測試它 – 2010-04-09 17:38:03