从jQuery 1.7开始,不推荐使用.live()方法。使用.on()来 附上事件处理程序。
版本1.7.1我试图将我的所有live()更改为on(),但没有一个工作。有谁知道为什么?
这就是它被调用的方式:
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
这是其中一个不起作用的脚本:
$(".toBeSaved [col=ISRC] input").on('change',function() {
var pid = $(this).parent().parent().attr('primary_key');
$("[primary_key="+pid+"] [col=isrc_id] input").val('');
$("[primary_key="+pid+"] [col=isrc_id] input").css({'border':'1px solid red','background-color':'#e8b7cf'});
});
HTML:
<tr primary_key="44" class="toBeSaved">
<td col="ISRC" style="width: 91px; " class="editableCell"><input class="editableInput auto" type="text" undefined=""></td>
<td col="LineYear" style="width: 35px; " class="editableCell"><input class="editableInput " type="text"></td>
<td col="isrc_id" style="width: 41px; " class="editableCell"><input class="editableInput undefined" type="text" undefined="" readonly="readonly"></td></tr>
我可以问 - 为什么“-1”?什么完全我的问题是错的?
答案 0 :(得分:7)
将代码从使用.live
转换为.on
不仅仅是将.live
的调用替换为.on
次调用。它们接受不同的参数,并在不同的选择器上调用。例如,旧语法:
$('a').live('click', function () {});
使用.on
:
$(document).on('click', 'a', function () {});
此语法为您提供更好的控制和灵活性。
我建议阅读文档: http://api.jquery.com/on/
有关从.on
转换为.live
的信息:
http://api.jquery.com/live/
答案 1 :(得分:0)
特定于提交的代码,按照上面的乱码;
替换
$(".toBeSaved [col=ISRC] input").on('change',function() {
与
$(document).on('change','.toBeSaved [col=ISRC] input', function() {