Returns a link of the given name that will trigger a JavaScript
function using the onclick handler and return false after the
fact.
The first argument name is used as the link text.
The next arguments are optional and may include the javascript function
definition and a hash of html_options.
The function argument can be omitted in favor of an
update_page block, which evaluates to a string when the template
is rendered (instead of making an Ajax request first).
The html_options will accept a hash of html attributes for the
link tag. Some examples are :class => "nav_button", :id =>
"articles_nav_button"
Note: if you choose to specify the javascript function in a block, but
would like to pass html_options, set the function parameter to nil
Examples:
link_to_function "Greeting", "alert('Hello world!')"
Produces:
<a onclick="alert('Hello world!'); return false;" href="#">Greeting</a>
link_to_function(image_tag("delete"), "if (confirm('Really?')) do_delete()")
Produces:
<a onclick="if (confirm('Really?')) do_delete(); return false;" href="#">
<img src="/images/delete.png?" alt="Delete"/>
</a>
link_to_function("Show me more", nil, :id => "more_link") do |page|
page[:details].visual_effect :toggle_blind
page[:more_link].replace_html "Show me less"
end
Produces:
<a href="#" id="more_link" onclick="try {
$("details").visualEffect("toggle_blind");
$("more_link").update("Show me less");
}
catch (e) {
alert('RJS error:\n\n' + e.toString());
alert('$(\"details\").visualEffect(\"toggle_blind\");
\n$(\"more_link\").update(\"Show me less\");');
throw e
};
return false;">Show me more</a>