2010-04-09 115 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