저는 레일즈 애플리케이션을 작성 중이며이 작은 jQuery 코드를 플러그인해야합니다. 그러나 실제로 작동시키는 법을 모릅니다.jQuery and Rails
class ChatroomController < ApplicationController
def send_data
@role = Role.find_by_id(session[:role_id])
render :juggernaut do |page|
page.insert_html :bottom, 'chat_data', "<b>#{@role.name}:</b> #{h params[:chat_input]}<br>"
end
render :nothing => true
end
end
코드보기 : 여기 내 컨트롤러 코드의
<h2>Chat</h2>
<html>
<head>
<%= javascript_include_tag :defaults, :juggernaut %>
<%= juggernaut %>
</head>
<body>
<div id='chat_data', class="chatbox">
</div>
<br>
<%= form_remote_tag(
:url => { :action => :send_data },
:complete => "$('chat_input').value = ''") %>
<%= text_area_tag('chat_input', '', { :rows => 3, :cols => 70, :id => 'chat_input'}) %>
<%= submit_tag "Send" %>
</form>
</body>
</html>
지금, 내가 어떤 사용자가 새 메시지를 보낼 때 채팅방은 항상 아래로 스크롤 할 필요가있다. 또한 현재 사용자가 수동으로 스크롤 한 경우 이러한 종류의 동작을 비활성화하십시오. 여기에 jQuery 코드가 몇 개 있습니다. Scrolling Overflowed DIVs with JavaScript
이제는 제대로 작동하지 않습니다. 내가 application.js에 붙여 넣기 :
$("#chat_data").each(function()
{
var scrollHeight = Math.max(this.scrollHeight, this.clientHeight);
this.scrollTop = scrollHeight - this.clientHeight;
});
가 나는 또한 내보기의 head
에 <%= javascript_include_tag 'jquery', 'application' %>
을 추가했습니다.
내 대화방 로그가 가득 차면 스크롤바가 나타나지만 새 메시지가 나오면 자동으로 하단으로 이동하지 않습니다.
정확히 어떤 코드를 응용 프로그램에 붙여 넣었습니까? 샘플을 남겨 두는 것이 중요합니까? – Stefan
무엇이 작동하며 작동하지 않는 이유는 무엇입니까? – Stefan