クラスにはたくさんのボタンがありますsearch_camera_btn
。
ボタンをクリックすると、フォームが送信されます。このステップは機能します。反対側では、ボタン クリック イベントもトリガーする必要があります。
イベント リスナーは、Ajax リクエストを送信する coffeescript ファイルに記述しましたが、最初のクリックでしか機能しません。
コードをこの要点に入れました。
Javascriptは、ボタンが初めてクリックされたときに機能しますが、その後のクリックでは失敗します。
実際には、クリックイベントハンドラーの開始時にアラートメッセージを配置しましたが、最初にのみアラートが表示されます。また、Firbug コンソールにエラー メッセージは表示されません。(クリックイベントハンドラーを起動しなかっただけだと思いました。)
$(".search_camera_btn").click ->
alert "test"
どのボタンをクリックしても、たくさんのボタンがあります。最初のクリックで常に機能します。これが私のより詳細なソースコードです。ダウンロード
何か案は?
バグのあるコードを絞り込みます。それは、初回のみ呼び出される「Ready to enter start」メッセージです。ただし、Firebug Javascript コンソールと Rails コンソールにはエラーは表示されません。開発モードでいくつかの設定を有効にする必要がありますか?
IW2 = get_camera_list: ->
console.log("Start")
ajax_req = $.ajax
url: "update_camera_list/"
type: "GET"
success: (resp) ->
# console.log resp
res = setTimeout (->
ajax_req
), 500
console.log("End")
return
jQuery ->
$(".search_camera_btn").click ->
console.log("Ready to enter start")
IW2.get_camera_list()
コンパイルされた CoffeeScript:
var IW2;
IW2 = {
get_camera_list: function() {
var ajax_req, res;
console.log("Start");
ajax_req = $.ajax({
url: "update_camera_list/",
type: "GET",
success: function(resp) {}
});
res = setTimeout((function() {
return ajax_req;
}), 500);
console.log("End");
}
};
jQuery(function() {
return $(".search_camera_btn").click(function() {
console.log("Ready to enter start");
return IW2.get_camera_list();
});
});