AJAX jQuery单击导致函数事件被触发两次

时间:2010-04-09 03:07:24

标签: jquery ajax drupal

我在Drupal中有一个AJAX聊天室模块,当用户点击tex时,我试图将BBCode stlye Insert Tex标签插入到提交框中。我设法第一次获得以下代码,但之后点击Insert Tex时,它会将tex代码三次插入。

$('#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]');
});

如果能够使代码正常运行,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的代码,您需要这样:

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

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

答案 1 :(得分:0)

在jquery中将插入位置设置为0修复了问题:插入符号(0);