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(){/ *在这里做你的东西!* /});' –