我想用超链接调用Jquery函数。
我现在拥有它就像是这样。
<a name='lnkViews'>" + title+ "</a>
$("a[name='lnkViews']").on("click", function (e) {
alert("Calling function");
});
因为它在这里不起作用。如何使用超链接调用该功能?
答案 0 :(得分:13)
delegation使用.on()
版本dynamic created element:
$(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函数:
$("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>