使用锚标记调用jquery函数

时间:2013-07-05 13:15:09

标签: jquery

我想用超链接调用Jquery函数。

我现在拥有它就像是这样。

<a name='lnkViews'>" + title+ "</a>

$("a[name='lnkViews']").on("click", function (e) {
    alert("Calling function");
});

因为它在这里不起作用。如何使用超链接调用该功能?

6 个答案:

答案 0 :(得分:13)

delegation使用.on()版本dynamic created element

WORKING EXAMPLE

$(document).on("click","a[name='lnkViews']", function (e) {
    alert("Calling function");
});

答案 1 :(得分:3)

Prevent Default Behavior或使用javascript:void(0)技巧。

$(function() {  //  simply document onload call, just pointing out where to put code, if you didn't already know
    $(document).on('click', 'a[name=lnkViews]', function(e) {
        e.preventDefault();
    });
})

|或|

<a name="lnkViews" href="javascript:void(0);">" + title+ "</a>

然后,在你的JS

$(function() {
    $(document).on('click', 'a[name=lnkViews]', function(e) {
        /* do work */
    });
})

我在您的评论中注意到您说链接已创建dynamically,然后我的解决方案将根据我使用delegate版本的.on这一事实为您服务。这意味着,事件被分配给添加到与选择器匹配的文档中的任何内容。因此,分配的原因是:

$(document).on('click', 'a[name=lnkViews]', function(e) {

答案 2 :(得分:1)

你使用哪个版本的jquery?

把它放进:

$(function()
{
   js code
});

你可能已经省略了它,但也许这不是因为它看起来你正在动态添加链接。

如果是,请尝试:

 var link = "<a href='#' onclick='alert(\'Calling function\');'>" + title + "</a>";

答案 3 :(得分:1)

执行on('click')代码时,必须确保链接位于DOM中。

jQuery函数on()会将事件处理程序附加到$("a[name='lnkViews']")中包含的所有jQuery对象,但是如果在"a[name='lnkViews']"执行时DOM中没有匹配$("a[name='lnkViews']").on()的元素不会附加任何处理程序。

要解决这个问题,你可以这样做:

var $a = $('<a name="lnkViews">' + title+ '</a>');
$a.on("click", function (e) { });

//adding $a in your DOM with element.append($a); for exemple

您还可以在执行$("a[name='lnkViews']").on()之前等待您的网页加载:

$(function() {
    $("a[name='lnkViews']").on("click", function (e) { });
});

此致

答案 4 :(得分:1)

工作正常。您的代码应包含});以关闭jquery函数:

Working Demo jsfiddle

$("a[name=lnkViews]").on("click", function () {
    alert("Calling function");
});

答案 5 :(得分:1)

您可以考虑以下示例: jquery sample

例如

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
  <a id="aLink">First Paragraph</a>
<script>
    $("#aLink").click(function () {
     alert("Calling function");
    });
</script>

</body>
</html>