我对jQuery很新,并且教我自己。下面你将看到我正在处理的代码和一个包含的JSFiddle。
我要做的是在我专注于输入/选择时添加一个类,并在单击父div时添加类。我基本上可以使用它,但是有2个独立的功能。
的问题:
可能的解决方案:
请解释一下代码,以便我可以从中学习。如果您没有解决方案,任何提示或方向也会有所帮助。提前谢谢!
HTML
<div class="panel">
<input type="text"/>
</div>
<div class="panel">
<input type="text"/>
</div>
<div class="panel">
<input type="text"/>
</div>
CSS
.panel{
padding:15px;
background:grey;
margin-bottom:15px;
}
.panel-primary{
margin:0 15px 0 15px;
background:blue;
margin-bottom:15px;
}
的jQuery
$(document).ready(function () {
$('.panel').click(function () {
$('.panel').removeClass('panel-primary');
$(this).addClass('panel-primary');
});
$('input, select').bind('focus blur', function () {
$(this).closest(".panel").toggleClass('panel-primary');
});
});
答案 0 :(得分:2)
您可以尝试这样的事情:
$('input, select').bind('focus blur', function (event) {
event.stopPropagation();
$('.panel').removeClass('panel-primary');
$(this).closest(".panel").addClass('panel-primary');
});
为你的第二个功能。
使用.stopPropagation(),您可以阻止点击事件进入&#34;冒泡&#34; DOM。所以它现在永远不会到达父div来触发你的第一个函数。
<强> DEMO 强>