2017-12-14 10 views
0

OpenCart 2.3プロジェクトで問題が発生しました。私はあなたに簡単なことを教えてください。スライダjquery uiとのブートストラップドロップダウンの競合

商品リストページでは、基本的にはcatalog -> view -> product -> category.tplです。通貨モジュールとフィルタモジュールを使用しています。

私は、製品のリストをフィルタリングするには、スライダを使用している場合は、それが(注意:ここでは、ページがリロードされていない)ページデータをリフレッシュされた基準

enter image description here

のための画像を参照してください、しかし、通貨ドロップダウン動かない。

もう一度スライダを使用している場合は、ドロップダウンが機能しています。

意味:初めてページを読み込んだ後。私がスライダを使用している場合、すべての奇数回の回転ごとに、スライダは動作しています。毎回の回転でも、スライダは機能しません。

ここでは、問題について少し考えています。

コーディング部分に来ることができます。

私はmodule -> filter.tplにあります。 ここスライダのこのjqueryのスライダ関数で

$("#slider-range").slider({}); 

に書き込まれ、オブジェクトは以下の通りであり、通過する:この行の

$("#slider-range").slider({ 
    range: true, 
    min: <?php echo $min_product_price ; ?>, 
    max: <?php echo $max_product_price; ?>, 
    values: [ <?php echo $amount_min; ?>, <?php echo $amount_max; ?> ], 
    create: function (event, ui) { 
     $("#amount").val("<?php echo $currency_symbol; ?> " + $("#slider-range").slider("values", 0) +" - <?php echo $currency_symbol; ?> " + 
     $("#slider-range").slider("values", 1)); 
     $('#amtmin').text('<?php echo $currency_symbol; ?> '+$("#slider-range").slider("values")[0]); 
     $('#amtmax').text('<?php echo $currency_symbol; ?> '+$("#slider-range").slider("values")[1]); 
     }, 
    slide: function(event, ui) { 
     $('#amtmin').text('<?php echo $currency_symbol; ?> '+$("#slider-range").slider("values")[0]); 
     $('#amtmax').text('<?php echo $currency_symbol; ?> '+$("#slider-range").slider("values")[1]); 
     $("#slider-range").val("<?php echo $currency_symbol; ?> " + ui.values[ 0 ] + " - <?php echo $currency_symbol; ?> " + ui.values[ 1 ]); 
     }, 
    stop: function (event, ui) { 
     filter = []; 
     $('input[name^=\'filter\']:checked').each(function(element) { 
       filter.push(this.value); 
      }); 
     amount=[]; 
     var amtmin = ui.values[0]; 
     var amtmax = ui.values[1]; 
     amount.push(amtmin,amtmax); 
     $('#amtmin').text("<?php echo $currency_symbol; ?> "+$("#slider-range").slider("values")[0]); 
     $('#amtmax').text("<?php echo $currency_symbol; ?> "+$("#slider-range").slider("values")[1]); 
     window.history.pushState("","",'<?php echo $action; ?>&filter=' + filter.join(',')+'&amtmin=' + amtmin+'&amtmax='+amtmax); 
     $("body").load('<?php echo $action; ?>&filter=' + filter.join(',')+'&amtmin=' + amtmin+'&amtmax='+amtmax); 
     // window.location.href = '<?php echo $action; ?>&filter=' + filter.join(',')+'&amtmin=' + amtmin+'&amtmax='+amtmax; 
    } 
}); 

フォーカス:

$("body").load('<?php echo $action; ?>&filter=' + filter.join(',')+'&amtmin=' + amtmin+'&amtmax='+amtmax); 

行を基本的には、私のbodyタグに新しいURLをロードしています。そして、私のヘッダ、私の通貨は全て本体にあります。 このコードで何が起こっているのか分かりません。そのため、1回の通貨のドロップダウンが機能しており、もう1回の通貨のドロップダウンは機能していません。

また、私は何かを言いたい、あなたは最後のコメント行を見ることができます。

window.location.href = '<?php echo $action; ?>&filter=' + filter.join(',')+'&amtmin=' + amtmin+'&amtmax='+amtmax; 

新しいドキュメントを読み込んでいる場合(基本的には読み込み中)、すべて問題ありません。

しかし、私はページをリロードしたくありません。 皆さん、これで私を助けてくれますか?

答えて

0

こんにちは、以下のコードで

$this->currency->format((float)$min_product_price ? $min_product_price : $min_product_price , $min_product_price) 

$this->currency->format((float)$max_product_price ? $max_product_price : $max_product_price , $max_product_price) 

をごminとmax価格を入れてください注:controller/product/category.php

でこれらの行を配置する必要があります
関連する問題