がクリック.element2されるたびに、 のイベント ハンドラーの別のコピーがバインドされます。.element1それを防ぎたい場合は、すでにハンドラーをバインドしているかどうかを変数に覚えておいてください。
var e2bound = false;
$(".element1").on("click", function(){
console.log("triggered element1");
if(!e2bound){
$(".element2").on("click", function(){
console.log("triggered element2");
})
e2bound=true;
}
});
別の解決策は、実行時に最初のハンドラーをバインド解除することです。
$(".element1").on("click", function e1handler(){
console.log("triggered element1");
$(this).off("click", e1handler);
$(".element2").on("click", function(){
console.log("triggered element2");
})
});