JQuery Focus - 输入?

时间:2012-05-19 18:15:39

标签: jquery input focus

根据我的理解,焦点事件必须与输入框之类的东西一起使用,但这似乎对我不起作用。我有以下小提琴......当有人专注于文本框时,我正试图让'Guide'div出现。我不确定问题的一部分是否是我对“兄弟姐妹”的使用以及输入框是否需要唯一ID?但是我把唯一标识符作为父标记,然后引用兄弟...

http://jsfiddle.net/jhacks/2jjZF/2/

你会看到我确实有一些额外的代码用于'错误'和'好'的消息。我正在努力为那些匹配类似Twitter注册页面的人提供JQuery活动如果有人可以直接说://twiter.com/signup但是这是另一篇文章。

感谢任何和所有帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

你是对的,兄弟姐妹是错误的选择者。兄弟姐妹指的是具有相同父级的其他元素,其输入字段没有。

因为你使用的是ID选择器,并且ID是唯一的定义,所以不需要遍历。

$('input#registerBox').focus(
    function() {
        $('#registerGuideName').show();
    }
);

您已经在使用$(this)的jquery对象,为什么不直接选择该ID?

如果脚本需要遍历,因为文档中有多个,则需要使用类或数据属性而不是ID选择器。正确的遍历意味着找到一个共同的父母,然后找到合适的孩子。

http://api.jquery.com/category/traversing/

$('input.registerBox').focus(
    function() {
        $(this).closest('.registerName').find('.registerGuideName').show();
    }
);

答案 1 :(得分:1)

$('input#registerBox').focus(
    function() {
     $(this)
       .closest('#registerBoxName') // go to parent div#registerBoxName
       .next('.registerGuidance')   // move to next div.registerGuidance
       .find('#registerGuideName')  // finding target #registerGuideName within div.registerGuidance
       .show(); // make display
   }
});