タイトルがこの状況をうまく説明しているかどうかはわかりません。以下は、ボタンが押されたときにdiv要素を作成するために作成したコードです。次に、作成されたdivのいずれかをクリックすると、ドロップダウンボックスから色を選択してdivの背景を変更できます。ただし、別のdivをクリックして、ドロップダウンから別の色を選択して色を変更しようとすると、以前にクリックしたdivも新しい色の影響を受けます。なぜこうなった。以前にクリックしたdivに影響を与えることなく、選択したdivの色を変更するだけです。私はこのサイトでたくさんのスレッドを読みました。そのうちのいくつかはクリックのバインドを解除することについて話しますが、問題を解決することができません。助けてくれてありがとう。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
<style>
.aaa { width:100px; height:100px;background-color:#ccc;margin-bottom:5px;}
p{widht:500px; height:500px; margin:0px; padding:0px;border:2px solid red;color:#000;}
</style>
<select id="item_select" name="item">
<option value="1">red</option>
<option value="2">blue</option>
<option value="3">green</option>
</select>
<button>Click to create divs</button>
<p id="ptest"></p>
<script type="text/javascript">
var dividcount = 1;
$("button").click(run);
function run(){
var myDiv = $('<div id=lar'+dividcount+' class=aaa></div>');
$(myDiv).clone().appendTo('#ptest');
$(dividcount++);
$("div").bind('click',(function() {
var box = $("div").index(this);
var idd = (this.id);
$("#"+idd).text("div #"+idd);
$("select").change(function(){
var str= $("select option:selected").text();
$("#"+idd).css("background-color",str);
});
}));
};
</script>