我正在尝试从<a>
属性的href
标记中找到一种调用jQuery语句的方法。我的代码如下所示:
<a href="javascript:$('#myElement').addClass('test');">
当我点击此链接时,浏览器(Firefox)会转到一个空白页面,其中包含:
[object Object]
重要提示:我正在使用第三方插件生成锚标记代码,因此我无权将代码添加到<a>
标记的onclick事件中。我还希望不必在我们使用AJAX时将函数作为语句的包装器引入。
有趣的是,这有效:
<a href="javascript:alert('test');">
有没有理由说jQuery语句在href
属性中不起作用?它是导致问题的主要美元符号吗?有没有办法让它发挥作用?
答案 0 :(得分:3)
javascript:
URI的返回值是用于构成浏览器应该访问的页面的数据。
对jQuery
的调用将返回一个jQuery对象。致alert
的电话会返回undefined
(被视为无内容回复)。
您可以将脚本包装在对void()
的调用中(将jQuery
的返回值作为参数传递给它),但我真的建议整理基础系统,这样你就不会首先必须使用javascript:
URI。
答案 1 :(得分:3)
你可以通过在一个函数中包装调用来解决这个问题:
<a href="javascript:(function(){$('#myElement').addClass('test');})()">asdf</a>
但更好的选择是使用javascript点击事件:
<a href="#" onclick="$('#myElement').addClass('test');return false;">asdf</a>
甚至更好,在其他地方挂钩:
<a href="#" id="somelink">asdf</a>
jQuery(document).ready(function() {
jQuery("#somelink").click(function() {
$('#myElement').addClass('test');
return false;
});
});