私は以前のスレッドに基づいたソリューションを実装しています。その主な目的は、Magentoでストアが開いているかどうかを確認することです。開いていれば大丈夫です。そうでない場合は、[カートに追加]ボタンを無効にして、勤務時間のテキストにカーソルを合わせる必要があります。
このソリューションは次のことを行います。
- AJAXを介してサーバーの現在時刻を取得する
- この時間を使って状態を確認してください
- 上記の結果に基づいて、ボタン要素にクラスを割り当てるかどうかを決定します。
ただし、テストの結果、クラスが動的に追加された要素にカーソルを合わせようとすると、$(this).addClass('btn-closed');
機能しないことがわかりました。要素にすでに存在するクラスを照合してホバーしようとすると、正常に機能します(ただし、ロジックが原因で解決策としては機能しません)。
// funcao para acertar as classes dos botoes aberto fechado
$j.get('/restaurante/hora', function(data) {
$j('#now').val(data);
// Box de Sugestoes
$j("#products-grid-QD .btn-cart").each( function() {
//alert($j(this).attr('tipo') + " " + $j(this).attr('abre1') + " " + $j(this).attr('fecha1') + " " + $j(this).attr('abre2') + " " + $j(this).attr('fecha2') + " " + $j('#now').val())
if (checkinrange($j(this).attr('tipo'), $j(this).attr('abre1'),$j(this).attr('fecha1'),$j(this).attr('abre2'),$j(this).attr('fecha2'),$j('#now').val())) {
$j(this).removeClass('btn-fechado');
} else {
$j(this).addClass('btn-fechado');
$j(this).removeAttr('onclick');
$j(".commentBtn").text('Fechado');
}
});
});
$j(document).ready(function(){
$j('.btn-fechado').hover(function() {
$j(this).next(".commentBtn").animate({opacity: "show"}, "slow");
}, function() {
$j(this).next(".commentBtn").animate({opacity: "hide"}, "fast");
});
});
<button type="button" onclick="btnComprar(<?php echo $_help['store_id']; ?>, '<?php echo $this->getAddToCartUrl($_product); ?>', '<?php echo $_help['nome'];?>')" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')" tipo="<?php echo $_help['tipo'];?>" abre1="<?php echo $_help['abre1'];?>" fecha1="<?php echo $_help['fecha1'];?>" abre2="<?php echo $_help['abre2'];?>" fecha2="<?php echo $_help['fecha2'];?>" >
<span><span><?php echo $this->__('Add to Cart') ?></span></span>
</button>
<span class="commentBtn"></span>
手伝ってください。