javascript - 为什么我的函数没有被调用?

标签 javascript jquery

我有一个这样的文件:

//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。

我单步执行代码,发现它转到了绑定(bind)事件,因此看起来该函数正在被绑定(bind)。

但是,当我运行代码并单击登录链接时,什么也没有发生。

我在这里做错了什么吗?我应该去掉函数的参数才能使其正常工作吗?

最佳答案

问题出在你的选择器上:

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

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

$('#loginLink, #registerLink')

原因是2nd argument to the jQuery function上下文。它查找与第一个参数 #loginLink 匹配的元素,该参数是第二个参数的后代。

关于javascript - 为什么我的函数没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12339699/

相关文章:

javascript - 混淆 error 和 reject in Promise

javascript - Prestashop:如何用 Colorbox 替换 Fancybox?

javascript - Webpack:如何为 "webpack"创建一个加载器,它需要一个依赖数组?

javascript - 如何通过使用 $(this).parent() 和 JQuery 来序列化当前的 div?

javascript - 检查数字中是否存在数字

jquery - Wordpress 自定义导航,下拉标题不可点击

jquery - iPhone 网络应用程序 : performance hotspots? 缓存? JavaScript 瓶颈?

jquery - 如何使用 fullcalendar.js 从静态 JSON 文件加载日历事件

javascript - 如何修复 "let i = 0 "循环中的 "for"值在完成循环后再次变为 0?

javascript - casperJS 注入(inject) jQuery 失败