jQueryFocus和focusout,这被认为是可接受的标记吗?

jQueryFocus和focusout,这被认为是可接受的标记吗?,jquery,focus,semantic-markup,focusout,Jquery,Focus,Semantic Markup,Focusout,我正在学习/试图在jQuery中做得更好。我想知道下面的标记是否可以接受,或者是否有一种更干净、更小的方法来完成相同的任务 $(document).ready(function(){ $('#searchwrapper .searchbox').focus(function(e) { $('#searchwrapper .searchbox_submit').css('color', '#999999'); } ); $('#se

我正在学习/试图在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'); 
        }
    );
});
编辑/解决方案

感谢和我最终使用的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'); 
        }
    );
});

看起来还可以,也许您可以通过缓存选择器来提高选择器的使用率

  • 链接事件处理程序
  • 使用变量缓存选择器
    $('#searchwrapper.searchbox_submit')
  • 试一试


    您可以通过链接生成一个更优化的jquery语句,并使用
    blur
    而不是
    focusout
    ,因为这一个冒泡了focusout事件,您可能不需要冒泡事件, 就像这样:

    $('#searchwrapper .searchbox').focus(function(e) {
            $('#searchwrapper .searchbox_submit').css('color', '#999999'); 
        }
    ).blur(function(e) {
            $('#searchwrapper .searchbox_submit').css('color', '#dddddd'); 
        }
    );
    
    您还应该将将来将要使用的jquery选择器存储在javascript变量中,如下所示:

    var selector = $('#searchwrapper .searchbox_submit');
    
    然后调用
    css

    $('#searchwrapper .searchbox').focus(function(e) {
            selector.css('color', '#999999'); 
        }
    ).blur(function(e) {
            selector.css('color', '#dddddd'); 
        }
    );
    

    是的,谢谢。。。我在玩这个,但由于语义错误而无法工作。以你为例,我现在知道我做错了什么,谢谢!谢谢,我放弃了1,因为我用了模糊而不是聚焦。谢谢
    $('#searchwrapper .searchbox').focus(function(e) {
            selector.css('color', '#999999'); 
        }
    ).blur(function(e) {
            selector.css('color', '#dddddd'); 
        }
    );