2010-04-09 3 views
1

Drupal에 AJAX 대화방 모듈이 있는데 사용자가 Insert Tex을 클릭하면 BBCode stlye tex 태그를 제출 상자에 삽입하려고합니다. 나는 처음에는 다음 코드를 얻었지만 이후에는 Insert Tex을 클릭하면 tex 태그가 세 번 삽입됩니다.AJAX jQuery click 결과 함수 이벤트가 두 번 발생했습니다.

$('#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

문제를 해결 JQuery와 0으로 caret의 위치를 ​​설정 : 캐럿 (0);

+0

드로잉 캔버스 추가하기 다른 설정에서이 동일한 문제를 다시 발견했습니다. jquery에서 캐럿 위치를 0으로 설정하면 문제가 해결되었습니다. 캐럿 (0); –

1

이 필요합니다

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

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

답장을 보내 주셔서 감사합니다. 그러나 코드를 작동시키지 못했습니다. 두 번째 함수의 마지막 줄을 삭제하고 코드를 추가했지만 여전히 이중 태그가 표시됩니다. 다시 클릭하면 트리플 태그가 표시됩니다. 다른 제안 할 수 있습니까? 감사. –

+0

내 코드를 테스트 할 수 있도록 페이지에 대한 링크를 게시 할 수 있습니까? –

+0

물론, url은 http : // sharpermath.com/drupal/node/24입니다. firebug를 사용하여 테스트 할 수 있습니다. –

관련 문제