1

同じクラスの入力をクリック(フォーカス)/クリックアウト(ぼかし)したときにアクションを実行したいのですが、ここの例のように、クリックした入力だけがすべてに影響するわけではありませんhttp://jsfiddle.net /HTZr2/ **入力をクリックすると、すべての説明が表示されます。クリックした入力の説明だけを表示したいと思います。

<div class="form-wrapper">
    <div class="form-element ">
        <input type="email" name="email" id="email" value="" autofocus="autofocus" tabindex="1">
        <p class="description">First's input description!</p>
    </div>
</div> 
<div class="form-wrapper">
    <div class="form-element ">
        <input type="email" name="email" id="email" value="" autofocus="autofocus" tabindex="1">
        <p class="description">Second's input description!</p>
    </div>
</div>  
<div class="form-wrapper">
    <div class="form-element ">
        <input type="email" name="email" id="email" value="" autofocus="autofocus" tabindex="1">
        <p class="description">Third's input description!</p>
    </div>
</div>
<div class="form-wrapper">
    <div class="form-element ">
        <input type="email" name="email" id="email" value="" autofocus="autofocus" tabindex="1">
        <p class="description">Forth's input description!</p>
    </div>
</div>

そして私のJS:

window.addEvent('domready', function() {
  $$('.form-element > input').addEvents({
  focus: function(){ 
      $$('.form-element').addClass('form_element_active')
      },
  blur: function(){
      $$('.form-element').removeClass('form_element_active');
      }    
  }); 
});

ありがとう!

4

1 に答える 1

3

親elを取得するだけです:

$$('.form-element > input').addEvents({
    focus: function () {
        this.getParent('.form-element').addClass('form_element_active')
    },
    blur: function () {
        this.getParent('.form-element').removeClass('form_element_active');
    }
});
于 2013-02-06T23:13:38.440 に答える