来自jQuery网站:
从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"吗??我的问题到底错在哪里?
将代码从使用.live
转换为.on
不仅仅是用.on
调用替换对.live
的调用。它们接受不同的参数,并在不同的选择器上被调用。例如,旧语法:
$('a').live('click', function () {});
带.on
:
$(document).on('click', 'a', function () {});
这种语法为您提供了更大的控制和灵活性。
我建议您阅读以下文档:http://api.jquery.com/on/
关于从.live
转换为.on
的信息:http://api.jquery.com/live/
根据上面的漫谈,特定于提交的代码;
更换
$(".toBeSaved [col=ISRC] input").on('change',function() {
带有
$(document).on('change','.toBeSaved [col=ISRC] input', function() {