0

まず、達成しようとしているのは、bigcommerce チェックアウト ページの文字列を置き換えることです。注文確認である第5ステップの下のチェックアウトページで支払い方法名を置き換えようとしています。エクスプレスチェックアウト機能によってbigcommerceサーバーからすべて読み込まれるため、htmlファイルのテキスト文字列を単純に変更することはできません。

私がこれまでに行ったことは、css :after トリックを使用してそれを置き換えることです。ただし、これは入力フィールドであるため、IE とは互換性がありません。したがって、残っている唯一のオプションは、javascript を使用することです。

これは私が使用している現在のコーディングです:

$(document).ready(function() {
$("a.ChangeLink, input[type='submit']") .live("click", function() {

$('label.ProviderNamecheckout_eway:contains("eWay Australia")').text('Credit Card');

});
});

最初のセクションの最初の入力ボタンをクリックすると、現在正常に動作します。また、常に右側の変更リンク。しかし、私が最も必要とするセクションでは機能していません。配送選択セクションで、続行ボタンをクリックしたときにこの置換機能をトリガーしたいと思います。しかし、それは機能していません。

助けてください!!!

更新:コードにいくつかの変更を加え、少なくともクリック イベントが新しく追加された要素で機能するようになりました。しかし、それでも交換は機能しません。その理由は、append 要素が完全にロードされる前に、replace がトリガーされるためだと思います。そのため、正しい要素 ID を見つけることができません。

更新:最後に JavaScript によってではなく、問題が解決されました。バックエンドで支払い名を変更する方法を見つけました。

4

1 に答える 1

1

あなたclickはreadyの中で定義されるべきであり、あなたはready意味をなさないクリックの中で定義されていreadyます.

$(document).ready(function() {
    $("a.ChangeLink, input") .click(function() {
        alert("Handler for .click() called.");    

        //$('label.ProviderNamecheckout_eway').replaceWith('Credit Card');
        $('label.ProviderNamecheckout_eway').text('Credit Card'); 
        // or $('label.ProviderNamecheckout_eway').html('Credit Card');
    });
});

最後に、IEモードであなたと一緒に遊ぶ必要がある問題を解決しました。cssこれら2つのcssを削除すると、スクリプトは現在と同じように完全に機能しますが、使用しているvisibility: hidden; ためテキストが表示されないため、IEでない場合はこれらのcssを移動します

.ProviderNamecheckout_eway {
visibility: hidden;
}
.ProviderNamecheckout_eway:after {
content: "Credit Card";
position: relative;
right: 106px;
visibility: visible;
display: inline;
}
于 2013-07-04T08:01:01.967 に答える