1

私のサイトで jquery の競合が発生していると思います。しかし、firebug を使用してデバッグする方法がわかりません。

カート ページから [送料と手数料の計算] リンクをクリックしても、結果が表示されません。

これを行うには、まずhttp://www.musicforte.com/sheet_music/でカートにアイテムを追加し、ページの右上にある [カート] をクリックする必要があります。

「持続」で「コンソール」を表示すると、firebug に表示されるのは赤い x であり、jquery.js の 141 行目にエラーがあります。

競合がどこにあるのかを理解し、解決するにはどうすればよいですか?

提案どおり、[送料の計算] ボタンに ID を含めるようにコードを修正しましたが、まだ運がありません。使用されているコードは次のとおりです。

送料計算ボタンにIDを追加してみました。しかし、それは問題を解決しませんでした。コードを次のように変更しました。

<a href="#" class="EstimateShippingLink" onclick="Cart.ToggleShippingEstimation(); return false;"><em>%%LNG_CalculateShippingHandling%%</em></a>
                        <div class="EstimateShipping" style="display: none;">
                            <div class="EstimatedShippingMethods" style="display: none;">
                                <div class="ShippingMethodList">
                                </div>
                                <hr />
                            </div>
                            <dl>
                                <dt>%%LNG_Country%%:</dt>
                                <dd>
                                    <select style="width:200px;" name="shippingZoneCountry" id="shippingZoneCountry" onchange="Cart.ToggleShippingEstimateCountry();">
                                        %%GLOBAL_ShippingCountryList%%
                                    </select>
                                </dd>

                                <dt>%%LNG_StateProvince%%:</dt>
                                <dd>
                                    <select style="display: %%GLOBAL_ShippingHideStateList%%" style="width:200px;" name="shippingZoneState" id="shippingZoneState">
                                        %%GLOBAL_ShippingStateList%%
                                    </select>
                                    <input style="display: %%GLOBAL_ShippingHideStateBox%%" type="text" class="Textbox Field200" name="shippingZoneStateName" id="shippingZoneStateName" value="%%GLOBAL_AddressState%%" />
                                </dd>

                                <dt>%%LNG_ZipPostcode%%:</dt>
                                <dd><input type="text" class="Field100 Textbox" name="shippingZoneZip" id="shippingZoneZip" value="%%GLOBAL_ShippingZip%%" /></dd>
                            </dl>
                            <p class="Submit EstimateShippingButtons">
                                <span style="display:inline-block;padding-right: 10px;vertical-align:top;"><a href="#" onclick="Cart.ToggleShippingEstimation();">%%LNG_Cancel%%</a> %%LNG_or%% </span><input type="image" class="formBtn" src="%%GLOBAL_TPL_PATH%%/images/%%GLOBAL_SiteColor%%/CalculateShipping.gif" onclick="Cart.EstimateShipping();" value="%%LNG_CalculateShipping%%" id="fixshipping" />
                            </p>
                        </div>
4

1 に答える 1

0

問題は、フォーム内にモジュールを埋め込んでいることです。画像入力をクリックすると、ブラウザのデフォルトが実行され、配送フィールドだけでなくフォーム全体が送信され、ページがリロードされます。

私が信じているエラーは、ajaxが中止されたためです。

これをコンソールで実行したところ、ページのリロードやエラーなしで送料計算が返されました

$('.EstimateShippingButtons input').click(function(){
   return false;
})

セレクターを改善したい場合があります。おそらく、shiiping calcs 送信ボタンに ID を追加してください。

編集:実際には、既存のハンドラーに追加するreturn falseか、追加するだけですevent.preventDefault()

cart.js で、Cart.EstimateShipping の最後に追加します。

于 2012-06-04T02:13:07.147 に答える