在头脑中我有
<script src="/assets/application.js?body=1" type="text/javascript"></script>
在我身上
<a href="remove_fields(this)">xremove</a>
我在js中
function remove_fields(link) {
...
}
点击xremove链接我
No route matches [GET] "/recipes/1/remove_fields(this)"
怎么了?
编辑 - 为简单起见更新了问题
答案 0 :(得分:1)
不要使用内联JavaScript。这完全违背了已知的最佳实践。
改为使用事件处理程序:
<a href="#" id="link">
<script>
document.getElementById('link').onclick = function() {
// do whatever you want
}
</script>
答案 1 :(得分:1)
看起来Rails正在为您的onclick生成无效的Javascript调用。函数调用的逗号没有参数,这必须意味着Rails试图为这些参数输入的数据必须为null。
检查你的Rails模板,看看它在那里尝试的内容。
更新:由于您更改了问题,这是一个新答案:
你不能直接在href中引用javascript。你必须在你的函数调用前添加“javascript:”,否则就把它放在onclick处理程序中。
答案 2 :(得分:1)
作为上述完全有效答案的替代方案,首先包括Google CDN Hosted缩小库,充分利用jQuery API的极端简化:
<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
然后就像上面一样,(但jQuery风格),更简单的IMO:
<a href="#" id="link">
<script type="text/javascript">
$("#link").click(function (event)
{
// Handle event here. This code will be executed whenever event is triggered
// ie. whenever you click the element with id link
});
我是一名经验不足的网络程序员,对于像javascript这样的函数/解释语言的最佳实践知识并不像在Assembly,C ++,Java等本地区域那样知识。但是我可以肯定地看到为什么jQuery如此受欢迎,甚至在像微软和谷歌这样的大型科技公司中,只比较上面给出的可写性/可读性和答案以及jQuery版本。我会尽力坚持这一点。
的链接