我有这个:
$("#socialsLogin").on("click", function() {
var login = $("#socialsLoginField").val();
var passwd = $("#socialsPasswordField").val();
SocialsStart(login, password);
});
而且:
<a href="javascript:void(0)" id="socialsLogin" class="button">Disconnected</a>
我的点击事件没有开始 - 我做错了什么?如果我用.live()更改.on(),一切正常。但我不想使用.live(),因为它已被弃用(是的,我使用的是jquery 1.9)
修改:这不重复。当我使用$(document).on("click", "#socialsLogin", function() {
时,它可以在页面上的任何位置工作 - 我可能会点击图像并启动它。绝对不是预期的。 $(document.body).on("click", "#socialsLogin", function() {
对我来说根本不起作用。
编辑2:这是我的小提琴:http://jsfiddle.net/JeDLW/1/
答案 0 :(得分:2)
要替换live
,请使用on
,如下所示:
$(document.body).on("click", "#socialsLogin", function() {
jQuery集接收事件,然后将其委托给与作为参数给出的选择器匹配的元素。这意味着与使用live
时相反,执行代码时jQuery集元素必须存在。
请注意,此绑定代码应在ready
回调中执行:
$(function() {
$(document.body).on("click", "#socialsLogin", function() {
...
});
});
编辑:
正如我所怀疑的那样,您的小提示表示您使用了多个ID为"socialLogin"
的元素。那就是问题所在。更改字段集的ID。
答案 1 :(得分:2)
试试这样:
$(document).on("click", "#socialsLogin", function() {
var login = $("#socialsLoginField").val();
var passwd = $("#socialsPasswordField").val();
SocialsStart(login, password);
});
或者你可以简单地使用它:
$("#socialsLogin").click(function () {
var login = $("#socialsLoginField").val();
var passwd = $("#socialsPasswordField").val();
SocialsStart(login, password);
});