0

我有一个这样的文件:

//function accessLinkClick(e) {
//    e.preventDefault();
//    $('#registerLink', '#loginLink')
//        .unbind('click', accessLinkClick);
//    dialog(this);
//}

function accessLinkClick(e) {
    alert("hi")
}

另一个:

$(document).ready(function () {
$('#loginLink','#registerLink')
.bind('click', accessLinkClick);
});

我的 HTML 如下所示:

<a id="loginLink" class="button dialogLink" title="Login" data-href="/MyAccount/Access/Login" data-title="Admin" data-entity="n/a" data-dialog="UserAdmin" href="#">Login</a>

我在第一个文件中更改了函数的名称,运行我的代码并得到一个错误,指出该函数不存在。所以这向我证明了 accessLinkClick 函数是已知的。然后我将函数名称改回 accessLinkClick。

我单步执行代码,我看到它进入了绑定事件,所以看起来函数正在被绑定。

但是,当我运行我的代码并单击 loginLink 时,什么也没有发生。

我在这里做错了吗?我应该带走函数的参数以使其工作吗?

4

1 回答 1

8

问题是您的选择器:

$('#loginLink','#registerLink')

您需要一个字符串而不是两个:

$('#loginLink, #registerLink')

原因是jQuery 函数的第二个参数context。它查找与第一个参数匹配的元素,该元素#loginLink是第二个参数的后代。

于 2012-09-09T13:59:23.380 回答