在href标签内使用jQuery

时间:2013-09-09 16:49:24

标签: jquery html

我正在尝试从<a>属性的href标记中找到一种调用jQuery语句的方法。我的代码如下所示:

<a href="javascript:$('#myElement').addClass('test');">

当我点击此链接时,浏览器(Firefox)会转到一个空白页面,其中包含:

[object Object]

重要提示:我正在使用第三方插件生成锚标记代码,因此我无权将代码添加到<a>标记的onclick事件中。我还希望不必在我们使用AJAX时将函数作为语句的包装器引入。

有趣的是,这有效:

<a href="javascript:alert('test');">

有没有理由说jQuery语句在href属性中不起作用?它是导致问题的主要美元符号吗?有没有办法让它发挥作用?

2 个答案:

答案 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;
    });
});