0
如何使jquery函數適用於第一次運行後添加的元素不適用於動態添加元素。使功能工作的元素動態添加與ajax
代碼:
jQuery(function() {
jQuery.support.placeholder = false;
test = document.createElement('input');
if('placeholder' in test) jQuery.support.placeholder = true;
});
$(function() {
var active = document.activeElement;
if(!$.support.placeholder) {
$(':text').focus(function() {
if ($(this).attr('placeholder') != '' && $(this).val() == $(this).attr('placeholder')) {
$(this).val('');
if($(this).hasClass("dcphc")===true){$(this).removeClass('dcph');}
else if($(this).hasClass("dcphmgc")===true){$(this).removeClass('dcphmg');}
else if($(this).hasClass("dcphlgc")===true){$(this).removeClass('dcphlg');}
}
}).blur(function() {
if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
$(this).val($(this).attr('placeholder'));
if($(this).hasClass("dcphc")===true){$(this).addClass('dcph');}
else if($(this).hasClass("dcphmgc")===true){$(this).addClass('dcphmg');}
else if($(this).hasClass("dcphlgc")===true){$(this).addClass('dcphlg');}
}
});
}
else{
$(':text').blur(function() {
if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
$(this).val("");
}
});
}
$(':text').blur();
$(active).focus();
});
function ref_dcph(w){
var active = document.activeElement;
if(!$.support.placeholder) {
$(w).focus(function() {
if ($(this).attr('placeholder') != '' && $(this).val() == $(this).attr('placeholder')) {
$(this).val('');
if($(this).hasClass("dcphc")===true){$(this).removeClass('dcph');}
else if($(this).hasClass("dcphmgc")===true){$(this).removeClass('dcphmg');}
else if($(this).hasClass("dcphlgc")===true){$(this).removeClass('dcphlg');}
}
}).blur(function() {
if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
$(this).val($(this).attr('placeholder'));
if($(this).hasClass("dcphc")===true){$(this).addClass('dcph');}
else if($(this).hasClass("dcphmgc")===true){$(this).addClass('dcphmg');}
else if($(this).hasClass("dcphlgc")===true){$(this).addClass('dcphlg');}
}
});
}
else{
$(w).blur(function() {
if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
$(this).val("");
}
});
}
$(w).blur();
$(active).focus();
}
第一功能做的工作,第二個ref_dcph(參考DOM控制佔位符) 是第一個副本,但我用的時候我補充一點,有新的元素一個特定的標識符,而不是被輸入或textarea,這樣我就不必對已經附加函數的項目進行解除綁定。
我需要一個扭曲的第一個它也可以在新dynamycally元素上運行,我不明白如何使用「on」。
- 此外,元素從dom中刪除並再次添加(使用相同的id - 也是相同的元素)會發生什麼 - 我注意到與點擊處理程序如果你想做一個$( ELEM)。單擊(函數(){});你必須通過解綁 - 否則點擊翻倍。
我不知道如何做第一個扭曲,並檢查是否以前的焦點()或模糊()被附加到被檢測爲動態生成的相同元素,如果是這種情況,則不再附加focus()和blur()。因爲我在頁面上有元素從dom中刪除,然後再次添加,其中涉及輸入或帶有佔位符的textarea。
你真的應該剛剛退出PHP來回應那個瘋狂/毫無意義的引用轉義。 – Dunhamzzz
試過編輯,但只是放棄了。發佈沒有引號和PHP的東西的代碼。 – adeneo
'$(w).on('blur',function(){/ *在這裏做你的東西!* /});' –