我正在学习/试图在jQuery中做得更好。我想知道以下是否是可接受的标记,还是有更简洁的方法来实现同样的目标?
$(document).ready(function(){
$('#searchwrapper .searchbox').focus(function(e) {
$('#searchwrapper .searchbox_submit').css('color', '#999999');
}
);
$('#searchwrapper .searchbox').focusout(function(e) {
$('#searchwrapper .searchbox_submit').css('color', '#dddddd');
}
);
});
编辑/解决方案
感谢Arun P Johny和senyor Toni我最终使用的js。
$(document).ready(function(){
var swap_color = $('#searchwrapper .searchbox_submit');
$('#searchwrapper .searchbox').focus(function(e) {
swap_color.css('color', '#999999');
}
).blur(function(e) {
swap_color.css('color', '#dddddd');
}
);
});
答案 0 :(得分:1)
看起来没问题,可能你可以通过缓存来改善选择器的使用。
$('#searchwrapper .searchbox_submit')
醇>
尝试
$(document).ready(function(){
var searchbox_submit = $('#searchwrapper .searchbox_submit');
$('#searchwrapper .searchbox').focus(function(e) {
searchbox_submit.css('color', '#999999');
}
).focusout(function(e) {
searchbox_submit.css('color', '#dddddd');
}
);
});
答案 1 :(得分:1)
您可以链接以创建更优化的jquery句子,并使用blur
而不是focusout
,因为这会引发焦点输出事件,您可能不需要事件冒泡,
那样:
$('#searchwrapper .searchbox').focus(function(e) {
$('#searchwrapper .searchbox_submit').css('color', '#999999');
}
).blur(function(e) {
$('#searchwrapper .searchbox_submit').css('color', '#dddddd');
}
);
此外,你应该存储将在javascript变量中使用的jquery选择器,如下所示:
var selector = $('#searchwrapper .searchbox_submit');
然后致电css
:
$('#searchwrapper .searchbox').focus(function(e) {
selector.css('color', '#999999');
}
).blur(function(e) {
selector.css('color', '#dddddd');
}
);