アプリケーションには、JS 関数を実行し、それを「変更」や「クリック」などの jquery イベントにバインドする必要がある場所がたくさんあります。リファクタリングの目的で、これを達成するのに役立つ汎用関数を作成したいと思います。ここに私の最初の考えがあります:
function execute_and_track(trackEvent, action) {
action();
trackEvent(function () {
action();
});
}
そして、私はそれを次のように使用することを考えました:
execute_and_track($("#ddl_Test").change, function () {
if ($("#ddl_Test").val().toUpperCase() == "OTHER") {
document.getElementById("txt_Test").style.display = "inline";
}
else {
document.getElementById("txt_Test").style.display = "none";
$("#txt_Test").val("");
}
});
残念ながら、これはエラーをスローします: Uncaught TypeError: Object [object global] has no method 'on'. jquery の変更をパラメーターとして渡すことができないようです。このロジックを修正したり、そのようなリファクタリング用の汎用関数を作成する別の方法を提案したりできる人はいますか?