为什么重新加载此页面而不是创建弹出窗口?

时间:2011-09-15 18:33:22

标签: javascript ruby-on-rails-3

我有一个按钮,应该打开一个弹出窗口,而是重新加载页面。我使用link_to工作,但button_to没有。将button_to更改为GET请求不起作用。我该怎么强迫它?

<%= button_to "Invite your friends", :id => "invite_fb_friends" %>
<div id="fb-root">
  <script src="http://connect.facebook.net/en_US/all.js"></script>
  <script>
      $(function(){
      $("a#invite_fb_friends").click(function(event) {
        FB.init({
        appId:'255295947482349',
        cookie:false,
        status:true
      });
        FB.ui({
        method: 'apprequests',
        message: 'This is a test message.'});
        event.preventDefault();
        return false;
      });
     });
  </script>
</div>

结果HTML:

#For the button

<form method="post" action="/profile?id=invite_fb_friends" class="button_to">
<div><input type="submit" value="Invite your friends" />
<input name="authenticity_token" type="hidden" value="1bgr+0o9j/gs4sgD7hItkc3BFR1ewVh5VyXCZRoMrtY=" />
</div></form>

#For the link
<div id="friends">
<p><a href="#" id="invite_fb_friends">invite your friends</a></p>

2 个答案:

答案 0 :(得分:0)

我认为您需要阻止点击事件冒泡(并执行默认操作,在这种情况下将导航到同一页面,其中:id param设置为“invite_fb_friends”)。

在JQuery中,这是event.preventDefault()

请参阅http://api.jquery.com/event.preventDefault/

答案 1 :(得分:0)

button_to生成一个带有提交按钮的表单,该按钮用于发布表单。 也许你应该尝试link_to或只是常规标记:

<input type="button" value="Invite your friends" id="invite_fb_friends" />