3

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

正如我现在拥有的那样,它是这样的。

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

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

因为它在这里,所以它不起作用。如何使用超链接调用该函数?

4

6 回答 6

14

动态创建的元素使用委托版本:.on()

工作示例

$(document).on("click","a[name='lnkViews']", function (e) {
    alert("Calling function");
});
于 2013-07-05T13:16:49.660 回答
3

防止默认行为或使用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) {
于 2013-07-05T13:19:38.060 回答
1

你用的是哪个版本的jquery?

把它放入:

$(function()
{
   js code
});

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

如果是这样,请尝试:

 var link = "<a href='#' onclick='alert(\'Calling function\');'>" + title + "</a>";
于 2013-07-05T13:20:17.510 回答
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>
于 2013-07-05T13:23:49.363 回答
1

on('click')当你的代码被执行时,你必须确保你的链接在 DOM中。

jQuery 函数on()会将事件处理程序附加到其中包含的所有 jQuery 对象,$("a[name='lnkViews']")但如果在执行"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) { });
});

问候

于 2013-07-05T13:21:34.050 回答
1

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

工作演示 jsfiddle

$("a[name=lnkViews]").on("click", function () {
    alert("Calling function");
});
于 2013-07-05T13:22:01.257 回答