為什么這個不管移在#Select下任一個p標簽上出現的都是.selectTipwhole里的第6個,怎么才能每個都對應
for遍歷事件
ZE明
2018-05-13 21:31:26
TA貢獻70條經驗 獲得超21個贊
閉包你學了嗎?
因為你做mose事件的時候for已經運行完了,所以i已經不小于6了所以怎么點擊拖動都是i=6;
用閉包做就號了
你可以設置
for(var i = 0 ; i < 6 ; i++){
????(function(i){
????????(你for內的代碼)
????????這樣i就不會受干擾了
????})(i);
}
這種形式
TA貢獻151條經驗 獲得超48個贊
你的mouseover函數放在for循環里面造成的,當觸發事件時候,人家都循環完了,當然是第六個了,把for循環放在mouseover事件函數里面。
$('#Select').on('mouseover','p',function(){
????for(var i=0;i<6;i++){
????? ? //這里寫你要是東西。
????}
})
另外你也可以用each()的方法。
TA貢獻3593條經驗 獲得超1個贊
TA貢獻151條經驗 獲得超48個贊
沒事干,教你個下拉的正常的操作:
/*css*/
*{
????margin:?0;
????padding:?0;
}
#Select{
????width:?600px;
????height:?600px;
}
p{
????height:?30px;
????margin-top:?20px;
????background-color:?limegreen;
}
.selectTipwhple{
????height:?100px;
????width:?100%;
????background-color:?Fuchsia;
}<!--html--> <div?id="Select"> ????<p>1</p> ????<div?class="selectTipwhple">11</div> ????<p>2</p> ????<div?class="selectTipwhple">22</div> ????<p>3</p> ????<div?class="selectTipwhple">33</div> ????<p>4</p> ????<div?class="selectTipwhple">44</div> ????<p>5</p> ????<div?class="selectTipwhple">55</div> ????<p>6</p> ????<div?class="selectTipwhple"><66/div> </div>
//js
$('#Select').on('mouseenter','p',function(){
????$(this).next('.selectTipwhple').show(200);
}).on('mouseleave','p',function(){
????$(this).next('.selectTipwhple').hide(200);
})我猜你是要這個效果吧???
舉報