2017-04-21 17 views
-2

私はenterイベントをトリガーするスクリプトを追加しました。私たちがスクロールすると、動的に別のページが追加されます(これはajax呼び出しです)。しかし、2ページ目のスクリプトからは読み込まれません。ページがスクロールした後にJavascriptが読み込まれない

これはコードです:

<%= form_tag add_comments_statuses_path, :data => {:toggle => "validator"}, :html => {:class=>"form-horizontal row-fluid shift_from", :id => "comments_form_#{status}"}, method: :post, :remote => true do %> 
    <div class="control-group"> 
    <a href="#" class="cmt-thumb"> 
     <%= image_tag current_user.profile_pic, :style=>"width:40px!important; height:40px;" %> 
    </a> 
    <div class="controls cmt-form " style="margin-bottom:10px;"> 
     <%= text_area_tag 'comment', " ", :class => "form-control", :id => "comment-form-#{status}", :placeholder =>"Write a comment...",:data => {:error => "Please Enter Comment"}, required: true %> 
     <span class="help-block with-errors" id = "error-#{status}"></span> 

    </div> 
    </div> 
    <input type="hidden" value="<%= status %>" name="status_id"> 
<% end %> 


<script> 
    $(function(){ 
    $("#comment-form-<%= status %>").keypress(function(event) { 
     if (event.which == 13) { 
      event.preventDefault(); 
      if ($(this).val() != " ") 
      $(this).closest('form').submit(); 
     } 
    }); 
    }) 
</script> 
+0

あなたはその言いましたajaxの呼び出しは、ajaxの呼び出しが非同期であることから、その理由は、ajaxの結果が表示されることを意味すると思います.DOMが 'live'ではないことを意味します。$( "#comment-form-<%= status %>").delegate 'keypress' function(イベント){あなたのコード;}); –

答えて

0

新たな付加HTMLが最初のDOMに存在していないので、キープレスイベントを認識する新しいページことができないので、それがスクロールした後、第2ページに機能していません。あなたはKeyPressイベントをインラインを書くと以下のようにそこから機能を呼び出す必要があり、この問題を解決するには

<input type='text' onkeypress = "return yourFunction(event)"/> 

注: OnKeyPressイベントの呼び出し構文を確認してください一度

+0

ありがとう、私は完全なコードを変更しました。今それは正常に動作しています。 – sahu

+0

申し訳ありませんが、私はupvoteしようとしていますが、それはいくつかのエラーメッセージ – sahu

関連する問題