Javascript Jquery不适用于Safari
我有一些jquery,它适用于IE、Chrome和Firefox,但不适用于safari。如果用户单击按钮,如果单击的按钮没有所述类,则调用toggleClass。这是一个 这是HTMLJavascript Jquery不适用于Safari,javascript,jquery,ios,safari,Javascript,Jquery,Ios,Safari,我有一些jquery,它适用于IE、Chrome和Firefox,但不适用于safari。如果用户单击按钮,如果单击的按钮没有所述类,则调用toggleClass。这是一个 这是HTML <form id="quoteform" action="confirm_plan_options.php" method="post" name="quoteform"> <div id="deduct_term_holder"> <h3 class="fs-subtitle
<form id="quoteform" action="confirm_plan_options.php" method="post" name="quoteform">
<div id="deduct_term_holder">
<h3 class="fs-subtitle">Deductibles</h3>
<input name="disappearing" value="Disappearing" class="deductible" id="deductible0" type="button">
<input style="display: none;" name="zero" value="$0" class="deductible" id="deductible1" type="button">
<input name="fifty" value="$50" class="deductible" id="deductible2" type="button">
<input name="onehundred" value="$100" class="deductible uiButton" id="deductible3" type="button">
<input name="two-hundred" value="$200" class="deductible" id="deductible4" type="button">
<br>
<h3 class="fs-subtitle">Term Years</h3>
<input name="1-year" value="1 years" class="term-years" id="1_year_term" type="button">
<input name="2-year" value="2 years" class="term-years uiButton" id="2_year_term" type="button">
<input name="3-year" value="3 years" class="term-years" id="3_year_term" type="button">
<input name="4-year" value="4 years" class="term-years" id="4_year_term" type="button">
<input name="5-year" value="5 years" class="term-years" id="5_year_term" type="button">
<input style="display: none;" name="6-year" value="6 years" class="term-years" id="6_year_term" type="button">
<input style="display: none;" name="7-year" value="7 years" class="term-years" id="7_year_term" type="button">
<input style="display: none;" name="8-year" value="8 years" class="term-years" id="8_year_term" type="button">
</div>
<div id="plansdiv" style="width:100%">
<table id="plans">
<caption>Ford Extended Service Care Plans
<br>Click on price to select.</caption>
<tbody>
<tr>
<td>Term Miles</td>
<td>End Year</td>
<td>PremiumCare</td>
<td>ExtraCare</td>
<td>BaseCare</td>
<td>PowertrainCare</td>
</tr>
<tr>
<td class="term_miles">12,000</td>
<td>2018</td>
<td>
<input name="PremiumCare_plan" value="$4,200" class="plan-price" type="submit">
</td>
<td>
<input name="ExtraCare_plan" value="$3,540" class="plan-price" type="submit">
</td>
<td>
<input name="BaseCare_plan" value="$3,135" class="plan-price" type="submit">
</td>
<td>
<input name="PowertrainCare_plan" value="$2,715" class="plan-price" type="submit">
</td>
</tr>
<tr>
<td class="term_miles">18,000</td>
<td>2018</td>
<td>
<input name="PremiumCare_plan" value="$4,255" class="plan-price" type="submit">
</td>
<td>
<input name="ExtraCare_plan" value="$3,730" class="plan-price" type="submit">
</td>
<td>
<input name="BaseCare_plan" value="$3,295" class="plan-price" type="submit">
</td>
<td>
<input name="PowertrainCare_plan" value="$2,820" class="plan-price" type="submit">
</td>
</tr>
<tr>
<td class="term_miles">24,000</td>
<td>2018</td>
<td>
<input name="PremiumCare_plan" value="$4,410" class="plan-price" type="submit">
</td>
<td>
<input name="ExtraCare_plan" value="$3,860" class="plan-price" type="submit">
</td>
<td>
<input name="BaseCare_plan" value="$3,400" class="plan-price" type="submit">
</td>
<td>
<input name="PowertrainCare_plan" value="$2,900" class="plan-price" type="submit">
</td>
</tr>
<tr>
<td class="term_miles">36,000</td>
<td>2018</td>
<td>N/A</td>
<td>
<input name="ExtraCare_plan" value="$4,125" class="plan-price" type="submit">
</td>
<td>
<input name="BaseCare_plan" value="$3,855" class="plan-price" type="submit">
</td>
<td>
<input name="PowertrainCare_plan" value="$3,240" class="plan-price" type="submit">
</td>
</tr>
<tr>
<td class="term_miles">48,000</td>
<td>2018</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
</tr>
<tr>
<td class="term_miles">60,000</td>
<td>2018</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
</tr>
<tr>
<td class="term_miles">75,000</td>
<td>2018</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
</tr>
</tbody>
</table>
<br>
<input name="plan_type" value="used" type="hidden">
</div>
<input type="button" id="to-vehicle-info" name="previous" class="previous action-button" value="Previous" />
<input type="button" name="next" class="next action-button" value="Next" />
</form>
还有Jquery
$('.deductible').click(function(e) {
var termstr = '';
var deductstr = '';
factory_warranty = $('input[name=factory_warranty]:checked').val();
snowplow = $('input[name=snowplow]:checked').val();
usage = $('input[name=usage]:checked').val();
milestr = $('#current_milage').val();
turbo = $('input[name=turbo]:checked').val();
purchase_date = $('input[name=purchase_date]:checked').val();
$('.deductible').each(function() {
if ($(this).is(":focus") && !$(this).hasClass('uiButton') && !$('.deductible').hasClass('uiButton')) {
$(this).toggleClass('uiButton');
} else if ($(this).hasClass('uiButton') && $(this).is(':focus')) {
e.preventDefault();
} else if (!$(this).hasClass('uiButton') && !$('.term-years').is(':focus') && !$('.term-years').hasClass('uiButton') && $(this).is(':focus')) {
$(this).toggleClass('uiButton');
} else if (!$(this).hasClass('uiButton') && !$('.term-years').is(':focus') && $('.term-years').hasClass('uiButton') && $(this).is(':focus') && $('.deductible').hasClass('uiButton')) {
$('.deductible').removeClass('uiButton');
$(this).toggleClass('uiButton');
}
});
$('.term-years').each(function(i) {
if ($('#' + i + '_year_term').hasClass('uiButton')) {
termstr = $('#' + i + '_year_term').val();
}
});
$('.deductible').each(function(i) {
if ($('#deductible' + i).hasClass('uiButton')) {
deductstr = $('#deductible' + i).val();
if (deductstr.indexOf('$') > -1) {
deductstr = deductstr.replace(/\D/g, '');
}
}
});
//alert('plan code is' + plan_code);
get_plan_pricing(plan_type, plan_code, termstr, deductstr, milestr, factory_warranty, snowplow, usage, turbo, purchase_date);
});
$('.term-years').click(function() {
var str = $(this).val();
milestr = $('#current_milage').val();
var deductstr = '';
factory_warranty = $('input[name=factory_warranty]:checked').val();
snowplow = $('input[name=snowplow]:checked').val();
usage = $('input[name=usage]:checked').val();
milestr = $('#current_milage').val();
turbo = $('input[name=turbo]:checked').val();
purchase_date = $('input[name=purchase_date]:checked').val();
$('.term-years').each(function() {
if ($(this).is(":focus") && !$(this).hasClass('uiButton') && !$('.term-years').hasClass('uiButton')) {
$(this).toggleClass('uiButton');
} else if ($(this).is(":focus") && !$(this).hasClass('uiButton') && $('.term-years').hasClass('uiButton')) {
$('.term-years').removeClass('uiButton');
$(this).toggleClass('uiButton');
}
});
$('.deductible').each(function(i) {
if ($('#deductible' + i).hasClass('uiButton')) {
deductstr = $('#deductible' + i).val();
if (deductstr === 'Disappearing') {
return;
} else {
deductstr = deductstr.replace(/\D/g, '');
}
}
});
//alert('plan code is ' + plan_code);
get_plan_pricing(plan_type, plan_code, str, deductstr, milestr, factory_warranty, snowplow, usage, turbo, purchase_date);
});
$('.plan-price').click(function(e) {
if ($('.next').prop('disabled', true)) {
$('.next').prop('disabled', false);
}
if ($(this).is(':focus') && !$(this).hasClass('uiButton') && !$('.plan-price').hasClass('uiButton')) {
$(this).toggleClass('uiButton');
} else if ($('.plan-price').hasClass('uiButton') && $(this).is(':focus') && !$(this).hasClass('uiButton')) {
$('.plan-price').removeClass('uiButton');
$(this).toggleClass('uiButton');
}
//alert($(this).val());
e.preventDefault();
});
我终于设法让这个工作使用
if(!$(e.target).hasClass('uiButton') && !$('.plan-price').hasClass('uiButton')){
$(e.target).toggleClass('uiButton');
}
else if($('.plan-price').hasClass('uiButton') && $(e.target) && !$(e.target).hasClass('uiButton')){
$('.plan-price').removeClass('uiButton');
$(e.target).toggleClass('uiButton');
}
我在这里找到的,我终于用
if(!$(e.target).hasClass('uiButton') && !$('.plan-price').hasClass('uiButton')){
$(e.target).toggleClass('uiButton');
}
else if($('.plan-price').hasClass('uiButton') && $(e.target) && !$(e.target).hasClass('uiButton')){
$('.plan-price').removeClass('uiButton');
$(e.target).toggleClass('uiButton');
}
我在这里发现,这些变量
工厂保修
,雪犁
等应该用var
@Pointy声明,这样做不会影响结果,但我已经更新了代码。这些变量工厂保修
,雪犁
,etc.应该用var
@Pointy声明,这样做不会影响结果,但我已经更新了代码。