0

ページの読み込み時に実行される描画関数があります。html.erb file抜粋は次のとおりです。

<div class="canvasarea">
<canvas id="myCanvas" width="360" height="840"></canvas>
</div>

<script> 
//definition of vars used in draw function...

 window.onload = function() {
    window.setTimeout(drawSomething,500)
  };

  function drawSomething() {
    context.drawImage(imageObj, xOffset, yOffset);
  }  
 </script>

ページでボタンが押されたときにこの画像を再描画したい。そのボタンは html.erb ファイルにあります。現在、いくつかtrの s を置き換えています。drawSomething()ボタンが押されたときに関数を呼び出したい。.js.erb file:_

<% @pos_range.each do |p|%>
    $("td#add_foo_<%= p %>").replaceWith("<%= escape_javascript(render(:partial => 'bars/update_foo_position', :locals => { :id => @foo.id, :position_str => @position_str, :position => p} ))%>");
    <% if (@foo and p == @foo.position) or @pos_range.length == 1 %>
        $("td#add_foo_button_<%= p %>").replaceWith("<%= escape_javascript(render(:partial => 'bars/update_foo_position_button', :locals => { :id => @bar.id, :position_str => @position_str, :position => p} ))%>");
    <% else %>
        $("td#add_foo_button_<%= p %>").replaceWith("<%= escape_javascript(render(:partial => 'bars/update_foo_position_empty', :locals => { :id => @bar.id, :position_str => @position_str, :position => p} ))%>");
    <% end %>
<% end %>

<% if @foo%>
    $("#tr_<%=@foo.name %>").hide()
<% end %>
$("#dialog").dialog("close").remove();
4

2 に答える 2

1

シンプルな JavaScript

var button = document.getElementById("yourbuttonid");
button.addEventListener("click", drawSomething, false);

またはjquery構文

$("#yourbuttonid").on("click",function(){
    drawSomething();
});
于 2013-06-20T14:17:35.723 に答える