我有一个按钮,应该打开一个弹出窗口,而是重新加载页面。我使用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>
答案 0 :(得分:0)
我认为您需要阻止点击事件冒泡(并执行默认操作,在这种情况下将导航到同一页面,其中:id param设置为“invite_fb_friends”)。
在JQuery中,这是event.preventDefault()
答案 1 :(得分:0)
button_to生成一个带有提交按钮的表单,该按钮用于发布表单。 也许你应该尝试link_to或只是常规标记:
<input type="button" value="Invite your friends" id="invite_fb_friends" />