将jquery函数绑定到元素

时间:2010-06-03 23:38:59

标签: javascript jquery

我对jquery很新,需要一些帮助。我正在尝试在输入文本框时更改css元素。我已经在我的文本框中应用了一个css类,我的文本框周围有几个div标签。

当用户选择文本框时,我想更改所需的div标签。

这就是html的外观

<div class="left">
    <div class="right">
        <input name="myTextBoxID" type="text" id="myTextBoxID" class="myTextBox" />
        <span id="rfInput"></span>
    </div>
</div>

我的jquery看起来像这样

<script language="javascript" type="text/javascript">
   $(function () {
       $('.myTextBox').focus(function () {

           $('.box.left').addClass("active");
       }).blur(function () {
           $('.box.left').removeClass("active");
       });
   });
</script>

现在jquery正在工作并改变了焦点和模糊的类,但是它会影响所有元素,而不是class =“myTextBox”如何让jquery附加到所有元素但是只激发css更改到元素外部的选定文本框类?

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:2)

<script language="javascript" type="text/javascript">
   $(function () {
       $('.myTextBox').focus(function () {
           $(this).closest('.left').addClass("active");
       })
       .blur(function () {
           $(this).closest('.left').removeClass("active");
       });
   });


</script>

this指的是收到该事件的元素。

因此,您将this包装到jQuery对象$(this)中,并使用您指定的类访问closest()祖先。

.closest() - http://api.jquery.com/closest/

答案 1 :(得分:0)

你不是那么清楚,所以,在这里,我的猜测......

    $(function () {
       $('.myTextBox').focus(function () {

           $(this).closest('.left').addClass("active");

       }).blur(function () {

           $(this).closest('.left').removeClass("active");

       });
   });