2016-11-09 4 views
1

完全なnoobの質問:jQueryで生成されたdivを変更するには?ここ

は、私はjQueryのによって生成されたdivのこの16×16のグリッドを持って

var rows = 16; 
 
var columns = 16; 
 
var $row = $("<div />", { 
 
    class: 'row' 
 
}); 
 
var $square = $("<div />", { 
 
    class: 'square' 
 
}); 
 

 
$(document).ready(function() { 
 
    for (var i = 0; i < columns; i++) { 
 
    $row.append($square.clone()); 
 
    } 
 

 
    for (var x = 0; x < rows; x++) { 
 
    $(".box_main").append($row.clone()); 
 
    } 
 
});
.row { 
 
    width: auto; 
 
    height: 40px; 
 
    background: #313131; 
 
} 
 
.square { 
 
    width: 40px; 
 
    height: 40px; 
 
    border-radius: 10px; 
 
    margin: 0; 
 
    display: inline-block; 
 
    background: #fff; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

私は何とか順ににaddClassとremoveClass(または何か他のもの)を使用することができますマウスの上にマウスを置いたときに、各divの背景色を1つずつ変更しますか?

私は何かを試してみましたが、これを行うことが可能かどうかはわかりません。

+1

はい、あなたの 'div'sのスタイルを変更するCSSクラスを使用することができます。あなたは最初に尋ねる前にあなた自身のためにそれを試してみたいかもしれません。 ;) – evolutionxbox

+2

これはjQueryでは簡単ですが、CSSでは簡単です。セレクタ '' '.square:hover'''で新しいスタイルを作ってそこに背景色を設定してください。 –

+0

私はしようとしましたが、どの要素を選択するかわからないのですか?私が何かをしたたびに、グリッドはただ消えました。 – mbt86

答えて

4

addClass()/removeClass()(またはJSも)は必要ありません。これは、:hover pseduoセレクタを単独で使用することで実現できます。これを試してみてください:

.square:hover { 
    background: #C00; /* amend colour as needed */ 
} 

の作業例::hover pseduoセレクタの横に

var rows = 16; 
 
var columns = 16; 
 
var $row = $("<div />", { 
 
    class: 'row' 
 
}).appendTo('body'); 
 
var $square = $("<div />", { 
 
    class: 'square' 
 
}); 
 

 
$(document).ready(function() { 
 
    for (var i = 0; i < columns; i++) { 
 
    $row.append($square.clone()); 
 
    } 
 

 
    for (var x = 0; x < rows; x++) { 
 
    $(".box_main").append($row.clone()); 
 
    } 
 
});
body { 
 
    background: #313131; 
 
} 
 
.row { 
 
    width: auto; 
 
    height: 40px; 
 
    background: #313131; 
 
} 
 
.square { 
 
    width: 40px; 
 
    height: 40px; 
 
    border-radius: 10px; 
 
    margin: 0; 
 
    display: inline-block; 
 
    background: #fff; 
 
} 
 
.square:hover { 
 
    background: #C00; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

Thanskの場合、私は確信が持てません:異なるボタンの色を変えたい場合は、ホバーを使用できますか? – mbt86

+0

これは動作させることができますが、どの要素をどの色で使うべきかを決定するロジックについての詳細が必要です。私はそれらの詳細で新しい質問を始めることをお勧めします。 –

1

が、あなたはおそらく、それはなるだろうJS(とそれに実際のクラスを追加する必要があるかもしれません以上他のイベントによって引き起こされた場合の感覚)、それにもかかわらずJS(addClass/removeClass)を使用する例がここにあります。

var rows = 16; 
 
var columns = 16; 
 
var $row = $("<div />", { 
 
    class: 'row' 
 
}); 
 
var $square = $("<div />", { 
 
    class: 'square' 
 
}); 
 
$row.appendTo('body'); 
 

 
$(document).ready(function() { 
 
    for (var i = 0; i < columns; i++) { 
 
    $row.append($square.clone()); 
 
    } 
 

 
    for (var x = 0; x < rows; x++) { 
 
    $(".box_main").append($row.clone()); 
 
    } 
 

 
    $('.square').hover(function() { $(this).addClass('hovering'); }, function() { $(this).removeClass('hovering'); }); 
 
});
.row { 
 
    width: auto; 
 
    height: 40px; 
 
    background-color: #313131; 
 
} 
 
.square { 
 
    width: 40px; 
 
    height: 40px; 
 
    border-radius: 10px; 
 
    margin: 0; 
 
    display: inline-block; 
 
    background-color: #fff; 
 
} 
 
.hovering { 
 
    background-color: cyan; 
 
    border: 3px dashed blue; 
 
    width: 34px; 
 
    height: 34px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

ホバリングは機能しますが、「ドローイング」のように動作させたい場合はどうすればよいですか?私は間違った質問* facepalmに尋ねたと思う – mbt86

関連する問題