Jquery は初めてです... Ruby on Rails を使用してアプリケーションを開発しています。ここで私がしなければならないことは、Jquery からコントローラー アクションを呼び出し、その出力をタイプライター効果のある div に表示することです。ここで、コンテンツのタイライター効果が開始され、「再生」ボタンが「停止」に変わるクリック時に「再生」ボタンを表示したいと考えています。停止すると、「再生」に変換され、再生が開始されます。このために、私はJqueryでこのコードを使用しました..
var text="content of text here";
var delay=50;
var currentChar=1;
var destination="[not defined]";
function set_file(id,time,user,node,activity)
{
var filename = "";
filename = user+"_"+node+"_"+activity+"_"+time;
jQuery("#play_"+id).click(function(event){
event.preventDefault();
jQuery("#img_"+id).attr('src',"/images/stop_images.png");
jQuery("#img_"+id).attr('title',"Stop");
jQuery(this).attr('id','stop_'+id);
jQuery.get('/requests/download_log/?filename=' + filename, function(data) {
startTyping(data, 50, "request_"+id);
});
jQuery("#stop_"+id).click(function(){
jQuery("#img_"+id).attr('src',"/images/play_images.png");
jQuery("#img_"+id).attr('title',"Play");
text="content of text here";
delay=50;
currentChar=1;
destination="[not defined]";
});
}
function startTyping(textParam, delayParam, destinationParam)
{
text=textParam;
delay=delayParam;
currentChar=1;
destination=destinationParam;
type();
}
function type()
{
if (document.getElementById)
{
var dest=document.getElementById(destination);
if (dest)
{
dest.innerHTML=text.substr(0, currentChar);
currentChar++
if(currentChar <= text.length)
{
setTimeout("type()", delay);
}
}
}
}
私の閲覧ページは
<% i = 1%>
<%=link_to_function result.time,:id => "log_#{i}",:onclick => "set_file(#{i},'#{time_val}','#{result.user}','#{result.nodeip}','#{result.activityuser}')" %>
<div id = "file_<%= i %>" class = "file">
<%= link_to_function image_tag("play_images.png",:width => 30, :height => 30,:align => 'left', :title => 'Play', :id => "img_#{i}"),:id => "play_#{i}"%>
<b><h7 id= "fname_<%= i %>" class = "h7">""</h7></b>
<%= link_to_function image_tag("images.jpeg",:align => 'right'), :id => "close_#{i}"%>
<div id = "request_<%= i%>" class = "request">
</div>
</div>
<%i = i + 1%>
どうすればそれを達成できますか、どうすればタイプライターモードを停止できますか?