のために、私は同じ出力が異なるページのカップル間で複数のdivの後に表示するスクリプトinsertAfterが複数のdiv
.on('finish.countdown', function(event) {
$(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
}) .insertAfter('#cartDefaultHeading');
の次のセクションがあります。 div名を変更すると、期待どおりに新しい場所に表示されます。 しかし、私がそれを複数に出現させようとすると、出力が得られません。
私は、次の
.on('finish.countdown', function(event) {
$(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
}) .insertAfter('#cartDefaultHeading').insertAfter('#checkoutOrderHeading');
と
.on('finish.countdown', function(event) {
$(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
}) .insertAfter('#cartDefaultHeading'), .insertAfter('#checkoutOrderHeading') ;
とさえ
.on('finish.countdown', function(event) {
$(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
}) .insertAfter('#cartDefaultHeading');
$(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
}) .insertAfter('#checkoutOrderHeading');
なしに働いていない試みました。私が複数のdivでそれを取得しようとするたびに、どちらもそれを取得しません。 これを達成するための正しい構文は何ですか?完全なスクリプトを以下に示し
:
<script>
jQuery(function($){
if (($('#cartDefaultHeading').length || $('#checkoutOrderHeading').length) && !$('.checkout_dispatch_timer').length) {
var $this = $('<div class="checkout_dispatch_timer <?php echo $dispatch_countdown_timer_style; ?>"></div>');
<?php if ($dispatch_countdown_timer_disable === false) { ?>
var finalDate = moment.tz('<?php echo $dispatch_countdown_timer_date_array[4]; ?>', '<?php echo date_default_timezone_get(); ?>');
$this.countdown(finalDate.toDate())
.on('update.countdown', function(event) {
var format = '%Mm';
if (event.offset.totalDays > 0) {
format = '%Dd:%Hh:' + format;
} else if (event.offset.totalHours > 0) {
format = '%Hh:' + format;
} else {
format = format + ':%Ss';
}
dispatch_countdown_timer_text = "<?php echo $dispatch_countdown_timer_text; ?>";
dispatch_countdown_timer_text = dispatch_countdown_timer_text.replace('%s', event.strftime(format));
$(this).text(dispatch_countdown_timer_text);
})
.on('finish.countdown', function(event) {
$(this).text("<?php echo TEXT_SHIPPING_BARELY_PAST_DISPATCH; ?>").parent().addClass('disabled');
})
.insertAfter('#cartDefaultHeading');
<?php } else { ?>
$this.text("<?php echo $dispatch_countdown_timer_text; ?>").insertAfter('#checkoutOrderHeading');
<?php } ?>
}
});
</script>
何を挿入しようとしていますか?挿入される要素は、エコーしているテキストではなく、 '.on()'の前の要素です。 – Barmar
@Barmarデータベースに設定された値に基づいてmoment.jsで計算された時間を挿入します。また、残ったタイルの量に応じて特定のメッセージを作成します。 var $ dispatch_countdown_timer_textにあるメッセージの内容 –
「insertAfter」は、ページがロードされたときに発生し、イベントが発生したときは発生しません。それはあなたが欲しいものですか? – Barmar