2014-09-05 3 views
-6

Всякий раз, когда я нажимаю enter, я получаю ReferenceError в firefox, а также Internet explorer. Кто-нибудь знает, как это исправить? :)ReferenceError: событие не определено

function status_post_comment(id) { 

    if(event.which == 13 && !event.shiftKey) { 

     var check_comment = $.trim($('#status_comment_'+id).val()); 
     var comment = $('#status_comment_'+id).val(); 

    if(check_comment.length >0) { 

     $.ajax({ 

      type: 'POST', 
      url: '<?php echo $domain; ?>social/comment_ajax.php', 
      data: 'id='+id+'&comment='+comment, 

     success: function(result) { 

      $('#append_comment_status_'+id).append(result); 
      $('#status_comment_'+id).val(''); 
      $(".timeago").timeago(); 
      $('.comment_input').val(''); 

     } 

     }); 

    } 

    } 

} 
+0

Возможно, ваша функция должна быть чем-то вроде: function status_post_comment (id, event) { – aquinas

+0

Где вы используете функцию – Satpal

+0

'event' не определен, поэтому определите его! Просто как тот. –

ответ

2

event только глобальный на IE и браузеров, которые предпочитают подражать ему. Со стандартными браузерами event - это аргумент, переданный вашему обработчику событий. Вы не показали, как вы подключаетесь к status_post_comment, но там, где вы это делаете, вам нужно будет пройти по аргументу event.

Например, если вы зацепив его с помощью on("click", ...), вы можете использовать ES5-х Function#bind (который может быть подкладками для старых браузеров):

someElement.on("click", status_post_comment.bind(null, id)); 

... и обновить status_post_comment принять event:

function status_post_comment(id, event) 

(id приходит первым, потому что мы обязаны это, то аргументы, приведенные в связанной функции следовать за ним.)

0

Я исправил проблему!

Я использовал инлайн OnClick = 'status_post_comment (ID)'

без определения события так, очевидно, он не работает. Я добавил событие к параметру функции, и теперь он работает:]

Смежные вопросы