Javascript 脚本在主页上运行,但不在其他页面上运行?
我是挠头。我有一个脚本问题,脚本出现在所有页面上,但如果不是主页,脚本似乎不会执行 如果您访问: www.foulplayrnot.com并点击立即捐赠,总数和价格将正确更改。(除了造型,但现在这并不重要) 但是, 如果您通过永久链接访问同一个活动,那么总数不会改变。两个页面上似乎加载了相同的脚本,但我不知道为什么它不起作用 唯一的区别是第一个(使用静态活动php模板的主页)是一个特色活动,第二个链接是使用single-Campaign.php的普通活动链接 用于更改价格总额的自定义脚本添加到了campaignify.js的底部,它是这样排队的(虽然这里的主页可能有条件,但似乎没有): activitify.js中的自定义代码,相关代码位于底部的/**模式价格**/:Javascript 脚本在主页上运行,但不在其他页面上运行?,javascript,php,jquery,wordpress,Javascript,Php,Jquery,Wordpress,我是挠头。我有一个脚本问题,脚本出现在所有页面上,但如果不是主页,脚本似乎不会执行 如果您访问: www.foulplayrnot.com并点击立即捐赠,总数和价格将正确更改。(除了造型,但现在这并不重要) 但是, 如果您通过永久链接访问同一个活动,那么总数不会改变。两个页面上似乎加载了相同的脚本,但我不知道为什么它不起作用 唯一的区别是第一个(使用静态活动php模板的主页)是一个特色活动,第二个链接是使用single-Campaign.php的普通活动链接 用于更改价格总额的自定义脚本添加到了
jQuery( document ).ready(function($) {
Campaignify.App.init();
Campaignify.Widgets.init();
if ( campaignifySettings.page.is_campaign )
Campaignify.Checkout();
$( window ).on( 'resize', function() {
Campaignify.Widgets.resize();
Campaignify.App.gridify();
});
/** Modal prices **/
var price;
var qty;
price = $('#myContributeSelect').find('option:selected').attr('data-price');
qty = $('#myContributeQty').find('option:selected').val();
var totalFormatted = (qty * price).toFixed(2);
$('#myContributeTotal').html(totalFormatted);
$('#Itemprice').val(price);
$('#myContributeQty').on('change', function() {
qty = $(this).val();
price = $('#Itemprice').val();
var totalFormatted = (qty * price).toFixed(2);
$('#myContributeTotal').html(totalFormatted);
});
$('#myContributeSelect').on('change', function() {
price = $(this).find('option:selected').attr('data-price');
qty = $('#myContributeQty').find('option:selected').val();
$('#Itemprice').val(price);
var totalFormatted = (qty * price).toFixed(2);
$('#myContributeTotal').html(totalFormatted);
});
});
这方面的HTML是(编辑掉一些php以使其更可读/更简洁):
大小
.wpautop(wp_kses_数据($price['name']))。
数量
1.
2.
3.
4.
5.
6.
7.
8.
9
10
全部的
你应该用你怀疑包含问题的代码重新格式化你的帖子丹尼尔,我已经编辑过了。Stackoverflow新手!我怀疑,如果JavaScript在一个页面上工作,而不是在另一个页面上工作,那么可能会有一些JavaScript错误阻止执行。但我建议使用JavaScript调试器设置断点并检查执行流和变量,以确保它确实执行,以及执行时dom的状态如何。例如,它可能在HTML元素实际可用之前执行。也许您可以尝试将所有JS包装在$(function(){/*code here*/})中
jQuery( document ).ready(function($) {
Campaignify.App.init();
Campaignify.Widgets.init();
if ( campaignifySettings.page.is_campaign )
Campaignify.Checkout();
$( window ).on( 'resize', function() {
Campaignify.Widgets.resize();
Campaignify.App.gridify();
});
/** Modal prices **/
var price;
var qty;
price = $('#myContributeSelect').find('option:selected').attr('data-price');
qty = $('#myContributeQty').find('option:selected').val();
var totalFormatted = (qty * price).toFixed(2);
$('#myContributeTotal').html(totalFormatted);
$('#Itemprice').val(price);
$('#myContributeQty').on('change', function() {
qty = $(this).val();
price = $('#Itemprice').val();
var totalFormatted = (qty * price).toFixed(2);
$('#myContributeTotal').html(totalFormatted);
});
$('#myContributeSelect').on('change', function() {
price = $(this).find('option:selected').attr('data-price');
qty = $('#myContributeQty').find('option:selected').val();
$('#Itemprice').val(price);
var totalFormatted = (qty * price).toFixed(2);
$('#myContributeTotal').html(totalFormatted);
});
});
<div class="sqwrap">
<div class="sizewrap">
<h5>Size</h5>
<div class="size">
<select name="price-option" class="selectStyle" id="myContributeSelect">
<option name="edd_options[price_id][]" id="%1$s" class="%2$s edd_price_options_input" value="%3$s" data-price="'.$amount.'">'.wpautop( wp_kses_data( $price[ 'name' ] ) ).
</option>
</select>
</div>
<div class="quantitywrap">
<h5>Qty</h5>
<select name="qty" class="modalquantity" id="myContributeQty">
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<div class="arrow-down"></div>
<input type="hidden" name="Itemprice" value="" id="Itemprice">
</div>
<div class="totalwrap">
<h3>Total</h3>
<div class="wrap_edd_cart_amount">
<div class="totalborder">
<span class="edd_cart_amount" data-subtotal="<?php echo edd_get_cart_total(); ?>" data-total="<?php echo edd_get_cart_total(); ?>">$<span id="myContributeTotal">0</span>
</div>
</div>
</div>
</div>