我有这个代码。 适用于jquery 1.5.2,现在我更新到1.6并且删除按钮不起作用
<script type="text/javascript">
$(document).ready(function() {
$('#btnAdd').click(function() {
var num = $('.clonedInput').length;
var newNum = new Number(num + 1);
var newElem = $('#input' + num).clone().attr('id', 'input' + newNum);
newElem.children(':first').attr('id', 'name' + newNum).attr('name', 'name' + newNum);
$('#input' + num).after(newElem);
$('#btnDel').attr('disabled','');
if (newNum == 5)
$('#btnAdd').attr('disabled','disabled');
});
$('#btnDel').click(function() {
var num = $('.clonedInput').length;
$('#input' + num).remove();
$('#btnAdd').attr('disabled','');
if (num-1 == 1)
$('#btnDel').attr('disabled','disabled');
});
$('#btnDel').attr('disabled','disabled');
});
</script>
有什么想法吗?
答案 0 :(得分:3)
我认为在jquery 1.6中,attr()函数已经改变,在某些情况下你应该使用prop()。在1.6.1中,他们重新引入了一些兼容性的变化。看看here了解prop()规范
取自jquery网站:
属性和属性之间的区别 属性可能很重要 具体情况。在jQuery之前 1.6,.attr()方法有时会考虑属性值 检索一些属性,哪些 可能导致不一致的行为。如 jQuery 1.6,.prop()方法 提供了一种显式检索的方法 属性值,而仅限.attr() 检索属性。
答案 1 :(得分:1)
关键是您必须正确使用attr()
。 disabled
是一个布尔属性,用于启用必须删除的元素,而不是将其设置为空字符串。请参阅:http://jsfiddle.net/zjcfN/
prop()
工作比其他事情更容易发生。您可以(并且应该!)继续使用attr()
来处理HTML元素属性,从jQuery 1.6开始,您还可以使用prop()
来处理DOM对象属性。
以下在jQuery 1.6中完美运行:
// disable an element
$("input").attr("disabled", "disabled");
// enable an element
$("input").removeAttr("disabled");