单击链接时在rails视图中使用javascript

时间:2010-06-21 05:38:39

标签: javascript ruby-on-rails

我对编程新手很满意。我知道我想做什么,并且相信我有我需要的代码,但我不知道如何把所有东西都搞定。

我有这个链接:

   “颜色:绿色;” %GT;

单击/按下它时,我希望调用此javascript倒计时:(它会显示一个倒计时框)

<script type="text/javascript">

var timeout;
function openInfoDialog() {
  Dialog.info("Test of info panel, it will close <br>in 3s ...",
               {width:250, height:100, showProgress: true});
  timeout=3;
  setTimeout(infoTimeout, 1000)
}

function infoTimeout() {
  timeout--;
  if (timeout >0) {
    Dialog.setInfoMessage("Test of info panel, it will close <br>in " + timeout + "s ...")
    setTimeout(infoTimeout, 1000)
 }
 else
  Dialog.closeInfo()
}
openInfoDialog();

</script>

然后,当该框关闭时,我想要刷新页面。问题是,我不知道如何在点击时调用该javascript,或者只刷新页面一次。

或者,我认为我可以用这个来解决问题:

<script type="text/JavaScript">
<!--
function timedRefresh(timeoutPeriod) {
    setTimeout("location.reload(true);",timeoutPeriod);
}
//   -->
</script>
<p>
<a href="javascript:timedRefresh(2000)">Refresh this page in 2 seconds</a> |
<a href="javascript:timedRefresh(5000)">Refresh this page in 5 seconds</a>
</p>
</div>

但是我再也不知道如何使用带有rails链接的这个javascript。

感谢您的帮助...

1 个答案:

答案 0 :(得分:0)

您需要向链接添加事件侦听器。假设你正在使用jquery(如果不是你应该):

<%= link_to 'Start monitoring this room', start_robot_path(@robot), :class => 'some_class %>

$(document).ready(function() {
    $('.some_class').click(function(event){
        openInfoDialog();
        return false;       
    })
})

#stylesheet.css
a.some_class{
  color:green
}