我有5个不同id的容器。在每个容器中,我有一个按钮来选择当前和连接的容器。
到目前为止,集装箱的选择工作如出一辙。但是当我想取消选择一个容器列表时,它就不起作用了。
请忽略脚本的计算部分。
<script type="text/javascript">
$(document).ready(function(){
var pricepermod = '';
var priceperemp = '';
var priceperloc = '';
var priceperusr = '';
var priceperpor = '';
var price = '';
$("#price-calculator input").change(function(){
$(this).pricecalc();
});
$.fn.pricecalc = function(){
var pricepermod = 10;
var priceperemp = 1;
var priceperloc = 10;
var priceperusr = 10;
var priceperpor = 1;
// alert("funktion aufgerufen");
var priceemp = $("#numemp").val() * priceperemp;
var priceloc = $("#numloc").val() * priceperloc;
var priceusr = $("#hruser").val() * priceperusr;
var pricepor = $("#empport").val() * priceperpor;
var pricemod = $("#nummod").val() * pricepermod;
price = pricemod + priceemp + priceloc + priceusr + pricepor;
$("#moncost").val(price);
}
$("#dpa.pricebox a.pricebutton").click(function() {
alert( "DPA" );
pricepermod = 1;
$("#nummod").val(pricepermod);
$("#dpa").removeClass("pricebox").addClass("pricebox-selected");
$("#dms").removeClass("pricebox-selected").addClass("pricebox");
$("#mms").removeClass("pricebox-selected").addClass("pricebox");
$("#tms").removeClass("pricebox-selected").addClass("pricebox");
$("#bms").removeClass("pricebox-selected").addClass("pricebox");
$("#mms a.pricebutton").html("deselect");
$("#dms a.pricebutton").html("select");
$("#dpa a.pricebutton").html("select");
$("#tms a.pricebutton").html("select");
$("#bms a.pricebutton").html("select");
$(this).pricecalc();
event.preventDefault();
});
$("#dpa.pricebox-selected > a.pricebutton").click(function() {
alert( "DPA selected" );
pricepermod = 0;
$("#nummod").val(pricepermod);
$("#dpa").removeClass("pricebox-selected").addClass("pricebox");
$("#dms").removeClass("pricebox-selected").addClass("pricebox");
$("#mms").removeClass("pricebox-selected").addClass("pricebox");
$("#tms").removeClass("pricebox-selected").addClass("pricebox");
$("#bms").removeClass("pricebox-selected").addClass("pricebox");
$("#mms a.pricebutton").html("select");
$("#dms a.pricebutton").html("select");
$("#dpa a.pricebutton").html("select");
$("#tms a.pricebutton").html("select");
$("#bms a.pricebutton").html("select");
$(this).pricecalc();
event.preventDefault();
});
$("#dms.pricebox a.pricebutton").click(function() {
alert( "DMS" );
pricepermod = 2;
$("#nummod").val(pricepermod);
$("#dpa").removeClass("pricebox").addClass("pricebox-selected");
$("#dms").removeClass("pricebox").addClass("pricebox-selected");
$("#mms").removeClass("pricebox-selected").addClass("pricebox");
$("#tms").removeClass("pricebox-selected").addClass("pricebox");
$("#bms").removeClass("pricebox-selected").addClass("pricebox");
$("#dpa a.pricebutton").html("deselect");
$("#dms a.pricebutton").html("deselect");
$("#mms a.pricebutton").html("select");
$("#tms a.pricebutton").html("select");
$("#bms a.pricebutton").html("select");
$(this).pricecalc();
event.preventDefault();
});
$("#dms.pricebox-selected a.pricebutton").click(function() {
alert( "DMS selected" );
pricepermod = 1;
$("#nummod").val(pricepermod);
$("#dpa").removeClass("pricebox").addClass("pricebox-selected");
$("#dms").removeClass("pricebox-selected").addClass("pricebox");
$("#mms").removeClass("pricebox-selected").addClass("pricebox");
$("#tms").removeClass("pricebox-selected").addClass("pricebox");
$("#bms").removeClass("pricebox-selected").addClass("pricebox");
$("#mms a.pricebutton").html("deselect");
$("#dms a.pricebutton").html("select");
$("#dpa a.pricebutton").html("select");
$("#tms a.pricebutton").html("select");
$("#bms a.pricebutton").html("select");
$(this).pricecalc();
event.preventDefault();
});
$("#mms.pricebox a.pricebutton").click(function() {
alert( "MMS" );
pricepermod = 3;
$("#nummod").val(pricepermod);
$("#dpa").removeClass("pricebox").addClass("pricebox-selected");
$("#dms").removeClass("pricebox").addClass("pricebox-selected");
$("#mms").removeClass("pricebox").addClass("pricebox-selected");
$("#tms").removeClass("pricebox-selected").addClass("pricebox");
$("#bms").removeClass("pricebox-selected").addClass("pricebox");
$("#dms a.pricebutton").html("deselect");
$("#dpa a.pricebutton").html("deselect");
$("#mms a.pricebutton").html("deselect");
$("#tms a.pricebutton").html("select");
$("#bms a.pricebutton").html("select");
$(this).pricecalc();
event.preventDefault();
});
$("#mms.pricebox-selected a.pricebutton").click(function() {
alert( "MMS selected" );
pricepermod = 2;
$("#nummod").val(pricepermod);
$("#dpa").removeClass("pricebox").addClass("pricebox-selected");
$("#dms").removeClass("pricebox").addClass("pricebox-selected");
$("#mms").removeClass("pricebox-selected").addClass("pricebox");
$("#tms").removeClass("pricebox-selected").addClass("pricebox");
$("#bms").removeClass("pricebox-selected").addClass("pricebox");
$("#mms a.pricebutton").html("deselect");
$("#dms a.pricebutton").html("deselect");
$("#dpa a.pricebutton").html("select");
$("#tms a.pricebutton").html("select");
$("#bms a.pricebutton").html("select");
$(this).pricecalc();
event.preventDefault();
});
$("#tms.pricebox a.pricebutton").click(function() {
alert( "TMS" );
pricepermod = 4;
$("#nummod").val(pricepermod);
$("#dpa").removeClass("pricebox").addClass("pricebox-selected");
$("#dms").removeClass("pricebox").addClass("pricebox-selected");
$("#mms").removeClass("pricebox").addClass("pricebox-selected");
$("#tms").removeClass("pricebox").addClass("pricebox-selected");
$("#bms").removeClass("pricebox-selected").addClass("pricebox");
$("#dms a.pricebutton").html("deselect");
$("#dpa a.pricebutton").html("deselect");
$("#mms a.pricebutton").html("deselect");
$("#tms a.pricebutton").html("deselect");
$("#bms a.pricebutton").html("select");
$(this).pricecalc();
event.preventDefault();
});
$("#tms.pricebox-selected a.pricebutton").click(function() {
alert( "TMS selected" );
pricepermod = 3;
$("#nummod").val(pricepermod);
$("#dpa").removeClass("pricebox").addClass("pricebox-selected");
$("#dms").removeClass("pricebox").addClass("pricebox-selected");
$("#mms").removeClass("pricebox").addClass("pricebox-selected");
$("#tms").removeClass("pricebox-selected").addClass("pricebox");
$("#bms").removeClass("pricebox-selected").addClass("pricebox");
$("#mms a.pricebutton").html("deselect");
$("#dms a.pricebutton").html("deselect");
$("#dpa a.pricebutton").html("deselect");
$("#tms a.pricebutton").html("select");
$("#bms a.pricebutton").html("select");
$(this).pricecalc();
event.preventDefault();
});
$("#bms.pricebox a.pricebutton").click(function() {
alert( "BMS" );
pricepermod = 5;
$("#nummod").val(pricepermod);
$("#dpa").removeClass("pricebox").addClass("pricebox-selected");
$("#dms").removeClass("pricebox").addClass("pricebox-selected");
$("#mms").removeClass("pricebox").addClass("pricebox-selected");
$("#tms").removeClass("pricebox").addClass("pricebox-selected");
$("#bms").removeClass("pricebox").addClass("pricebox-selected");
$("#dms a.pricebutton").html("deselect");
$("#dpa a.pricebutton").html("deselect");
$("#mms a.pricebutton").html("deselect");
$("#tms a.pricebutton").html("deselect");
$("#bms a.pricebutton").html("deselect");
$(this).pricecalc();
event.preventDefault();
});
$("#bms.pricebox-selected a.pricebutton").click(function() {
alert( "BMS selected" );
pricepermod = 4;
$("#nummod").val(pricepermod);
$("#dpa").removeClass("pricebox").addClass("pricebox-selected");
$("#dms").removeClass("pricebox").addClass("pricebox-selected");
$("#mms").removeClass("pricebox").addClass("pricebox-selected");
$("#tms").removeClass("pricebox").addClass("pricebox-selected");
$("#bms").removeClass("pricebox-selected").addClass("pricebox");
$("#mms a.pricebutton").html("deselect");
$("#dms a.pricebutton").html("deselect");
$("#dpa a.pricebutton").html("deselect");
$("#tms a.pricebutton").html("deselect");
$("#bms a.pricebutton").html("select");
$(this).pricecalc();
event.preventDefault();
});});
<body>
<div id="dpa" class="pricebox">
<h2>DPA</h2>
<a href="#" class="pricebutton">auswählen</a>
</div>
<div id="dms" class="pricebox">
<h2>DMS</h2>
<a href="#" class="pricebutton">auswählen</a>
</div>
<div id="mms" class="pricebox">
<h2>MMS</h2>
<a href="#" class="pricebutton">auswählen</a>
</div>
<div id="tms" class="pricebox">
<h2>TMS</h2>
<a href="#" class="pricebutton">auswählen</a>
</div>
<div id="bms" class="pricebox">
<h2>BMS</h2>
<a href="#" class="pricebutton">auswählen</a>
</div>
<form id="price-calculator">
<p>Anzahl Mitarbeiter <input type="text" name="numemp" id="numemp" class="form-control" value="0"></p>
<hr />
<p>Anzahl Standorte <input type="text" name="numloc" id="numloc" class="form-control" value="0"></p>
<p>Anzahl HR-Anwender <input type="text" name="hruser" id="hruser" class="form-control" value="0"></p>
<p>Anzahl Mitarbeiterportale <input type="text" name="empport" id="empport" class="form-control" value="0"></p>
<hr />
<p>gewählte Module <input type="text" name="nummod" id="nummod" class="form-control" value="0" /></p>
<p>Monatliches Nutzungsentgeld <input type="text" name="moncost" id="moncost" class="form-control" value="0" /> (€/mtl.)</p>
</form>
</body>有人能帮帮我吗?我已经在尝试不同的解决方案,我找到了这里,但似乎什么都没有用:
PS:对不起,代码不好。我不是jQuery专家。
发布于 2017-06-26 13:42:11
您可以切换.pricebox-selected css类onClick。
这只是一个非常普通行为的例子,我认为您可以自己找出其余的代码。
编辑作为对您的评论的后续:
内部逻辑取决于您,我只是想说明,只要代码更少,它就可以更通用。我更新了代码,选择了处理依赖元素的多种方法之一,我只是将它们添加到一个data-*属性中,并在onClick事件中抓取它们。
就像我说的,这是很多人的一种方式。
$(document).on('click','.pricebox a',function(e){
var $currentBox = $(this).parent('.pricebox');
var dependencies = $currentBox.attr('data-dependencies') || [];
var selectedClass = 'pricebox-selected';
// remove all
$('.pricebox').removeClass(selectedClass);
// set current
$currentBox.addClass(selectedClass);
// set dependencies
$(dependencies.toString()).addClass(selectedClass);
console.clear();
console.log(dependencies.toString());
console.log($currentBox.attr('id'));
});.pricebox
{
width:100px;
min-height:100px;
display:inline-block;
margin:0px 10px 10px 0px;
padding:5px 10px;
background-color:#ffffff;
}
.pricebox-selected
{
width:100px;
min-height:100px;
display:inline-block;
margin:0px 10px 10px 0px;
padding:5px 10px;
background-color:#4169E1;
}
a.pricebutton
{
display:inline-block;
padding:5px 10px;
text-align:center;
margin:10px auto 0 auto;
text-decoration:none;
border:1px solid #666;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="dpa" data-dependencies="" class="pricebox">
<h2>DPA</h2>
<a href="#" class="pricebutton">select</a>
</div>
<div id="dms" data-dependencies="#dpa" class="pricebox">
<h2>DMS</h2>
<a href="#" class="pricebutton">select</a>
</div>
<div id="mms" class="pricebox">
<h2>MMS</h2>
<a href="#" class="pricebutton">select</a>
</div>
<div id="tms" data-dependencies="#dpa,#dms,#mms" class="pricebox">
<h2>TMS</h2>
<a href="#" class="pricebutton">select</a>
</div>
<div id="bms" data-dependencies="#dpa,#dms,#mms,#tms" class="pricebox">
<h2>BMS</h2>
<a href="#" class="pricebutton">select</a>
</div>
https://stackoverflow.com/questions/44760890
复制相似问题