$('.field').blur(function()
$('*').not('.adress').click(function(e) {
foo = $(this).data('events').click;
if(foo.length <= 1) {
// $(this').next('.spacer').children().removeClass("visible");
}
$(this).unbind(e);
});
});
我正在尝试删除一个“可见的类,每当我模拟一个字段为.field的字段时,除非我单击一个带有类.adress的元素。
字段模糊和地址点击正在按预期工作(我已经厌倦了警报)但没有删除课程,有人知道为什么吗?
如果不删除(“.adress”) - 函数,删除类就可以了! 像这样:
$('.field').blur(function() {
(this).next('.spacer').children().removeClass("visible");
});
答案 0 :(得分:0)
//$(this
之后你有额外的报价。您不需要引用this
变量。
此外,您的*选择器可简化为$(':not(.address)')
您能举例说明您的HTML吗?
答案 1 :(得分:0)
我正在尝试删除一个“可见的类,每当我模拟一个字段为.field的字段时,除非我单击一个带有类.adress的元素。
这非常棘手。您当前的代码所做的是绑定是每次使用类click
模糊元素时绑定field
事件处理程序。这不会像你想要的那样工作。
我能想到的最好的跨浏览器方式是监听focus
事件并记录哪个元素已经获得焦点,如果需要,可以对先前活动的元素采取措施:
$(document).ready(function(){
var curFocus;
$(document.body).delegate('*','focus', function(){
if ((this != curFocus) && // don't bother if this was the previous active element
($(curFocus).is('.field')) && // if it was a .field that was blurred
($(this).is('.adress')) // the newly focused field is an .adress
) {
$(curFocus).next('.spacer').children().removeClass("visible"); // take action based on the blurred element
}
curFocus = this; // log the newly focussed element for the next event
});
});
这可能性能很差。如果您不担心跨浏览器兼容性,尤其是旧版本,document.activeElement
可能会让您感兴趣。