2014-09-05 85 views
-6

每當我按下Enter鍵,我都會在Firefox和Internet Explorer中看到一個ReferenceError。有誰知道如何解決這個問題嗎? :)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 2014-09-05 17:59:00

+0

你在哪裏使用函數 – Satpal 2014-09-05 17:59:17

+0

'event'沒有被定義,所以定義它!就那麼簡單。 – 2014-09-05 18:04:31

回答

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)'

沒有如此明顯它不工作定義事件。我添加了事件功能參數,現在它的工作原理:]