我正在尝试使用警报调用一个简单的函数,但是当我尝试从我的html页面调用函数(包含在外部js文件中)时它不会工作。
我有一个导入,通话非常简单。有什么建议吗?
<head>
<script src="/js/jsFunctions.js" type="text/javascript"></script>
在我的代码中,我致电
<a href="javascript:displayAlertText('someText');">
在js中我有一些jquery后跟一个函数
function displayAlertText(someText)
{
alert('alert' + someText);
}
答案 0 :(得分:5)
你在做什么看起来应该有效。问题可能出在其他地方。
带有“Javascript:”前缀的Hrefs真的很可怕。相反,尝试将其重写为:
<a href="#" onclick="displayAlertText('someText'); return false;">
除此之外(我认为实际上不会导致它),你犯下了“它不起作用”的主要罪过。你在控制台中遇到任何Javascript错误吗?我怀疑你会有,除非确实调用了有效的函数。
此外,尝试从页面上的<script>
块中明确调用JS函数,以查看它在什么时候失败。
仔细检查外部文件是否在您点击链接时确实已加载 - 也许在外部脚本文件的底部放置一行以帮助检查这一点,例如
alert('External file loaded.');
编辑(根据评论):好的,我们已经确定您可以在网页上的“普通”JavaScript中调用该方法。这意味着问题在于您尝试从超链接调用脚本的方式。
您是否通过验证器传递了HTML?如果语法无效,那么用户代理可以根据需要对其进行解释,包括完全忽略它。
如果HTML确实有效,那么此时发布完整HTML的链接可能很有用,这样其他人就可以查看它并查看问题所在。它可能类似于覆盖链接的onclick
事件的另一个函数,因此您的事件处理程序会丢失。
答案 1 :(得分:3)
在纯jQuery中你会这样做:
$(document).ready(function(){
$('a').click(function(){
alert('here');
})
})
答案 2 :(得分:0)
试试这个......
<a href="#" onclick="displayAlertText('someText');">
如果这没有帮助,我会开始确保您的javascript文件正确加载并且在某处不包含一些简单的语法错误。在Firefox中使用Firebug查看您的页面并查找警告和错误。
答案 3 :(得分:0)
你提到了jQuery。该函数是独立的还是在jQuery对象中(即包含在另一个函数中)?这有所不同。
分开来自此问题,您调用该函数的方式并不干净。将其移至onclick
属性或更好地利用jQuery。