[英]Code works on jquery 1.8.3 but not work on 1.9.1 and up
我有一個適用於1.8.3的代碼(鍵入內容時在模糊或聚焦后成功添加了SUFFIX),但不適用於1.9.1或更高版本。
<div id="mmm">
<input type=text class="gen"><br>
<input type=text class="gen"><br>
<input type=text class="gen">
</div>
$("#mmm").on('focusout change blur','.gen', function() {
var myvar=$(this);
coreid=this.value;
$.ajax (
{
url: '/echo/html/',
success: function (data,status) {
myvar.empty().attr("value", coreid + "MYSUFFIX" );
}
})
})
在1.8.3 /上檢查Fiddle /如果更改為1.9.1或更高版本,則代碼停止有效(鍵入內容時末尾不添加后綴)
通過閱讀《 jQuery Core 1.9升級指南》,您將了解發生了什么變化。 對您而言重要的是:
jQuery 1.6引入了.prop()方法來設置或獲取節點上的屬性,並且不建議使用.attr()來設置屬性。 但是,在特定情況下,最高1.9版本仍支持使用.attr()。
因此將.attr
更改為.prop
:
$("#mmm").on('focusout change blur', '.gen', function () {
var myvar = $(this);
coreid = this.value;
$.ajax({
url: '/echo/html/',
success: function (data, status) {
myvar.empty().prop("value", coreid + "MYSUFFIX");
}
})
})
您還會注意到,如果包含jQuery Migrate插件,則可以繼續使用.attr()
就像Terry在下面指出的那樣,.val()可能是不管的方式: myvar.val(coreid + "MYSUFFIX");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.