2

サンプルコードがあります:

<a href=""></a>
<textarea></textarea>
<object></object>
<img src="" />
<div id="content"></div>

私はこれを使用していました:

jQuery("a").mouseover(function() {
    alert();
 });
 jQuery("textarea").mouseover(function() {
    alert();
 });
 jQuery("object").mouseover(function() {
    alert();
 }); 
 jQuery("img").mouseover(function() {
    alert();
 });
 jQuery("#content").mouseover(function() {
    alert();
 });

これを使用できますか?

var object = ["a","textarea","object","img", "content"]; 
jQuery.each(object, function() {
   jQuery(this).mouseover(function(){
      alert();
   });  
});

配列からjQueryマウスオーバーを使用してアイデアを出す方法は?

4

3 に答える 3

3

.each()ループのコンテキストでは、thisは配列の現在の要素、つまり文字列になります。ただし、各文字列はオブジェクトにラップされるため(docoページで説明されています)、次を使用する必要があります。 $.each()this.toString()

jQuery(this.toString()).mouseover(function(){

...そして、それは、などと同じ効果がありjQuery("a")ますjQuery("textarea")。これは、各文字列が有効なセレクターである限り機能します。または、jQueryが関数に渡す引数を利用することをお勧めします。

jQuery.each(object, function(i, val) {
   jQuery(val).mouseover(function(){

配列の最後の要素はであるため、 :idが必要です。#

var object = ["a","textarea","object","img", "#content"];
// add # here --------------------------------^

次に、マウスオーバーハンドラーのコンテキストではthis、イベントが発生した要素であるため、jQuery(this)ではなくを使用しますjQuery("#" + this)。それをすべてまとめると:

jQuery.each(object, function(i, val) {
   jQuery(val).mouseover(function(){
       jQuery(this).css(...);           
   });  
});​

デモ: http: //jsfiddle.net/GBtFY/

于 2012-11-24T03:49:43.353 に答える
1

アクセスするときthisは、先頭に追加しないでください#

配列に関しては、CSSセレクターを使用します。

$('a, textarea, object, img, #content').mouseover(function(){
  $(this).css(...);
});
于 2012-11-24T03:49:03.733 に答える
0

もし私があなたなら、マウスオーバー機能を必要とする要素に共通の属性を与えるでしょう。クラス名やデータ値属性のように。
例えば:

<a href="" data-hover="true"></a>
<textarea data-hover="true" ></textarea>
<object data-hover="true" ></object>
<img data-hover="true" src="" />
<div data-hover="true" id="content"></div>


<script type="text/javascript">
$(document).ready(function(){
    $('[data-hover]').bind('mouseover', function(){
        alert('Completed');
    });
});
</script>
于 2012-11-24T04:02:53.213 に答える