本当に古いバージョンのjQueryを使用している場合を除いて、このメソッドはまったく使用しないでください.live()
。バージョン1.7以降を使用している場合は、委任された形式の.on()
;を使用してください。1.7より古いが1.4.2より新しいものを使用する場合は、を使用します.delegate()
。
$(document).on("click", ".productSubmitInput", function() { })
と同等です
$(".productSubmitInput").live(function() { })
...より効率的で柔軟性があるため、より良いものを除きます。理想的には、あなたの代わりに、$(document)
あなたのボタンが$("#someForm")
どこにあるかをします。"#someForm"
そうは言っても、以下はコードを変換する1つの方法です。関数に渡す引数はAddToCart()
各ボタンに固有であると想定しているので、何らかの方法でそれらをボタンに関連付ける必要があります。data-
属性を使用します。
<input class="productSubmitInput" name="AddToCart_Submit" type="submit"
value="Add to Cart"
data-param1="26483" data-param2="3123041"
data-param3="" data-param4="4" data-param5="false">
次に、インラインonclick=
属性を削除したら、スクリプトブロックで次のようにします。
$(document).ready(function() {
// $(document).on("click", ".productSubmitInput", function() {
// OR, better
$("#yourFormIdHere").on("click", ".productSubmitInput", function() {
var $this = $(this);
AddToCart( $this.data("param1"), $this.data("param2"), $this.data("param3"),
$this.data("param4"), $this.data("param5") );
return false;
});
});
もちろん、これらのパラメータの一部がすべてのボタンで同じである場合、たとえば最後のパラメータが常に次AddToCart()
の場合など、HTMLに属性として保存するのではなく、直接JSに配置できます。false
AddToCart( $this.data("param1"), $this.data("param2"), $this.data("param3"),
$this.data("param4"), false );