2016-05-31 3 views
0

私は、 "変更"と "クリック"の2つのバインド関数を.on()を使って作成しています。それは私が変更する最初の要素で動作しますが、もう2番目の要素では機能しません。 "クリック"と同じです。私は.on()を(セレクタ)でラップしようとしました。each()はループすると思っていますが、それは同じです。誰かが助けてもらえますか?申し訳ありません、私はまだこのことについて初心者です。私はそれが変更されるすべての入力テキストとクリックされるすべてのリンクに対して機能するようにしたい。以下は私のコードです。どのように.on()をループすることができますか?

//on click 
$("div.productitemcell a").on("click", function() { 
    var t = $(".sc-pn-size .productitemcell").length; 
    if (t > 1) { 
     $("a#catshopbuy").hide(); 
     $("#warning").show(); 
    } 
}); 

//on change 
$("div.productitemcell input").bind("change", function() { 
    var t = $(".sc-pn-size .productitemcell").length; 
    if (t > 1) { 
     $("a#catshopbuy").hide(); 
     $("#warning").show(); 
    } 
}); 

ここにhtmlがあります。

​​

ここに表示されているタグは無視してください。これらは私が使用しているCMSから生成されます。基本的には、私は貨物の問題のために一度に1つ以上の製品をチェックアウトすることができないショッピングカートに取り組んでいます。だから、ここの製品は数が増えます。お客様は、製品の数量を削除または更新します。 1つの製品を削除しても問題ありませんでしたが、別の製品を削除しても機能しなくなりました。

+0

htmlは役に立ちます –

答えて

1

関数を使用してコールバックを行います。

function callBack() { 
    var t = $(".sc-pn-size .productitemcell").length; 
    if (t > 1) { 
     $("a#catshopbuy").hide(); 
     $("#warning").show(); 
    } 
} 
//on click 
$("div.productitemcell a").on("click", callBack); 
//on change 
$("div.productitemcell input").bind("change", callBack); 
+0

申し訳ありませんが、動作しませんでした。それはまだ同じです。 1つの入力ボックスで動作しますが、2番目と3番目の入力ボックスでは動作しません。 – Mary

+0

@Mary Idは一意でなければなりません。あなたはhtmlを追加できますか?これらの要素は '#catshopbuy、#warning'が複数回出ていますか? – RRK

関連する問題