从链接调用js方法

时间:2012-06-09 19:52:05

标签: javascript html

在头脑中我有

<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)"

怎么了?

编辑 - 为简单起见更新了问题

3 个答案:

答案 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版本。我会尽力坚持这一点。

以下是优秀jQuery documentation on the .click() method

的链接