我有以下代码(我已经简化了这个),它与jquery-1.7一起运行良好.
$("td.ui-datepicker-week-col a").live("click", function () {
alert("hello");
});
Run Code Online (Sandbox Code Playgroud)
我正在尝试升级我的代码,所以我可以升级我的jQuery包版本,所以我把它改成了这个.
$("td.ui-datepicker-week-col").on("click", "a", function () {
alert("hello");
});
Run Code Online (Sandbox Code Playgroud)
但这并没有做任何事情.它不会抛出任何错误,所以我无法看到问题所在.
有任何想法吗?
我的soft.php代码
<!DOCTYPE html>
<html>
<head><style>
</style>
<script src="jquery.js"></script>
<script>
$(function(){
$("button").on("click",function(){alert("f");});
$("div").on("click",function(){
$("span").load("check.php");
});
});</script></head><body>
<div>Click</div>
<button>eaf</button><span></span>
</body></html>
Run Code Online (Sandbox Code Playgroud)
和check.php代码
<body>
<button>Hello</button>
</body>
Run Code Online (Sandbox Code Playgroud)
我想通过点击按钮来提醒f,该按钮是通过ajax加载的,它与.live()工作正常.但是有人告诉我.on()可以用来代替live.但是.on()在这里不起作用.解决方案
我刚在jQuery中遇到问题。我没有找到已经发布的解决方案,如果有,我为我的错误表示歉意。
我有这个DOM:
<div class='usersList list'>
<div id='7' class='sidebarElement'> <span>user</span></div>
<div id='21' class='sidebarElement'><span>user</span></div>
<div id='12' class='sidebarElement'><span>user</span></div>
<div id='15' class='sidebarElement'><span>user</span></div>
<div id='17' class='sidebarElement'><span>user</span></div>
<div id='13' class='sidebarElement'><span>user</span></div>
<div id='5' class='sidebarElement'> <span>user</span></div>
<div id='3' class='sidebarElement'> <span>user</span></div>
<div id='4' class='sidebarElement'> <span>user</span></div>
<div id='19' class='sidebarElement'><span>user</span></div>
<div id='2' class='sidebarElement'> <span>user</span></div>
<div id='6' class='sidebarElement'> <span>user</span></div>
<div id='18' class='sidebarElement'><span>user</span></div>
<div id='16' class='sidebarElement'><span>user</span></div>
<div id='14' class='sidebarElement'><span>user</span></div>
</div>
Run Code Online (Sandbox Code Playgroud)
它是通过AJAX从另一个文件加载的。我遇到的问题如下。这是我的JS:
$(document).ready(function () {
function reloadUsers(query) {
$.ajax({
url: 'getLoginUsersAjax.php',
type: 'GET',
data: {query: query},
success: function (data) {
$('.usersCardAjaxContainer').empty().html(data);
}
});
} …Run Code Online (Sandbox Code Playgroud) 具有以下结构:
<td class="padding_right padding_left">Neighborhood</td>
<td>
<div id="neighborhoods_region">
<select class="inputs_form_data" id="neighborhood_id2" name="neighborhood_id2">
<option value=""></option>
<option value=""></option>
</select>
</div>
</td>
<td width="10%"><a class='delete-region'>remover</a></td>?
Run Code Online (Sandbox Code Playgroud)
我正在尝试remove点击链接,以获取选择ID的ID号.在这种情况下,我需要从"neighborhood_id2"中获取数字2.
但首先我只是想获得完整的身份证.neighborhood_id2使用以下代码:
$(document.body).on('click','a.delete-region', function () {
alert($(this).closest('select').attr("id"));
});
Run Code Online (Sandbox Code Playgroud)
但这会让我回报undefined.
注意:该id号码是在动态表单上即时生成的.所以我可能有neighborhood_id3,等等.
我曾经喜欢.live()jQuery 的功能.您可以添加它,瞧,任何与标识符匹配的未来元素都将具有该功能.
然后它被弃用了,建议使用.on().但它不起作用.下面是我的代码$(document).ready().
这有效
$('#membership_number').live('change',function(e) {
alert("VALUE CHANGED");
});
Run Code Online (Sandbox Code Playgroud)
事实并非如此
$('#membership_number').on('change',function(e) {
alert("VALUE CHANGED");
});
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以达到相同的效果,.live()或者我没有.on()正确使用?
我使用java脚本创建我的Html元素createElement().但是我无法在JQuery中选择任何html元素 - $("p").on("click",function(){}).它适用于$(document).我的JQuery脚本位于html页面正文的末尾.但是,在页面创建后,在浏览器中检查inspect元素时,html元素位于脚本下方.
我已经看到了许多其他类似的问题,但没有一个有效.请帮我解决这个问题我现在已经在这方面工作了几天,而且我没有把它带到哪里.
美好的一天.最近我开始学习jQuery,在开发jQuery方面我非常环保.
我对.on()事件有以下问题.我已经搜索了堆栈溢出的答案,但我没有找到任何有效的解决方案.我有以下代码:
$('input.a').on('click',function(){
$(this).after('<input class="a" type="button" value="click me">');
});
Run Code Online (Sandbox Code Playgroud)
这个功能工作正常,但是当我点击它们时生成的按钮什么都不做.我应该使用.live(); 事件,但因为我正在使用jQuery 1.10.2这个事件已被弃用.在访问jQuery文档之后,我发现我应该以下面的方式使用.on()
$('input.a').on('click','input.a',function(){
$(this).after('<input class="a" type="button" value="click me">');
});
Run Code Online (Sandbox Code Playgroud)
但是一旦我这样做,整个功能就会停止工作(我假设,因为我没有得到任何反馈),但是开发人员的控制台也没有错误.我做错了什么,或者.live()事件是否还有其他替代品?
可能的重复:
jQuery 1.7-将live()转换为on()
只需将我的代码从“实时”切换为“开启”,某些事件就不再触发,这是一个示例,有人可以帮忙说一下这是怎么回事吗?以前,使用“实时”而不是“开启”方法可以100%正确地工作。
$('a#doBulkLink').on('click', function (e) {
createLabelsWithDestinationFolders();
$('label.moveDocDestinationFolder').on('click', function (e) {
doSomeAjaxStuffWithLabels();
e.stopImmediatePropagation();
});
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
谢谢。
我有一个小代码,负责绘制新添加的注释.问题是,当我重写代码使用on而不是删除时live,我的代码不适用于在页面加载后添加的新元素
这是我的代码
$(function(){
$('.show-comment-form').on("click", (function(){
dataattr = $(this).data('comment');
$('#new_comment').remove();
$('.message-'+dataattr).append(partial_form);
$("#comment_parent_id").val(dataattr);
return false;
}))
})
Run Code Online (Sandbox Code Playgroud)
HTML
<a href="/phrases/52/create_comment?parent_id=16" class="show-comment-form" data-comment="16">Reply</a>
Run Code Online (Sandbox Code Playgroud)
如何将click事件添加到所有将来的元素,这些元素将在页面加载后添加?
由于.live()已被弃用,我使用的是.on()而不是.live(),但是它无法正常工作,如果我错了请耐心等待,提前谢谢.
下面是一个简单的测试html,我的预期行为是只有当我点击按钮时事件才会触发,但事实证明,无论我点击什么,事件都会触发.
<html lang="en">
<head>
<title>demo</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<div id="wrapper">
<p>Hello World!</p>
<p>Hello World!</p>
<p>Hello World!</p>
<p>Hello World!</p>
<button id="btn">Click</button>
<p>Hello World!</p>
<p>Hello World!</p>
<p>Hello World!</p>
<p>Hello World!</p>
<p>Hello World!</p>
</div>
<script>
$(document).on("click", $("#btn"), function(){
document.title += "fire!";
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我使用最新的jQuery版本(1.9.1)更新了我的应用程序.根据发布更新,.live()方法已停止并从1.9 + jQuery版本中删除.新资源现在是.on(),语法相同.
早,我写了下面的jQuery代码:
jQuery("#addressTypes ul li input[type=text]").live('blur', function () {
var item = {
addressType: jQuery("#addressTypes ul input[type=text]").val(),
idAddressType: jQuery("#addressTypes ul input[type=text]").parent().attr("id")
}
submitUpdateAddressType(item);
});
Run Code Online (Sandbox Code Playgroud)
此代码适用于旧版本,但停止使用jQuery更新.
有人能帮我吗?请记住,jQuery("#addressTypes ul li input[type=text]")由于业务问题,该项目无法更改.
我有从jQuery 1.7.1到1.10.2的更新,现在下面的问题出现在jquery.unobtrusive-ajax.js中:
$("a[data-ajax=true]").live("click", function (evt) {
evt.preventDefault();
asyncRequest(this, {
url: this.href,
type: "GET",
data: []
});
});
Run Code Online (Sandbox Code Playgroud)
问题是在现场.它说不$("a[data-ajax=true]")接受方法或财产live.
怎么解决这个?我应该升级jquer.unobtrusive-ajax.js还是这样的?