1

これは私に数時間行ってもらいました。何か助けていただければ幸いです。さらに情報を提供できるかどうか教えてください。

Rails3.2アプリケーションでいくつかの基本的なjQueryを機能させようとしています。問題のjQueryは、ボタンを押すとアクションを提供することです(現時点では、それが機能していることを知らせるアラートダイアログだけです)。

app / views /orders / index.html.erb

...

<button type="button" class="btn" id="button">My button</button>

...

私はjQuery/JSコードのさまざまなバリエーションを試しました。

アプリ/アセット/javascripts/orders.js

$('#button').click(function() {
    alert("Test message");
});

$(document).ready(function() {
    $('#button').click(function() {
        alert("Test message");
    });
});

$(document).ready(function() {
    $('#button').button();
    $('#button').click(function() {
        $(this).button('loading');
    });
});

注意すべきいくつかのポイント:

  • これは開発環境で実行されています
  • JSファイルは、ソースとChromeネットワーク/リソースパネルにエラーなしで表示されます。
  • application.jsファイルを並べ替えてみました。
  • 私はまだCoffeeScriptに精通していませんが、CoffeeScriptベースのソリューションを試してみるつもりです。
  • ChromeはMorrisでエラーを報告します。

参照用の私のapp/assets/javascripts/application.js

//= require jquery
//= require jquery_ujs
//= require raphael
//= require morris
//= require bootstrap
//= require_tree .

このバグを追跡するための手順に関する提案は非常に役立ちます。


更新

次のCoffeeScriptソリューションを試してみましたが運がありませんでした。

jQuery ->
    jQuery('#button').click ->
        alert("Test msg")

// ... which generates ...

(function() {

  jQuery(function() {
    return jQuery('#jamcake').click(function() {
      return alert("You have cake?");
    });
  });

}).call(this);

ボタンをリンクに変更しようとしましたが、役に立ちませんでした。

基本に立ち返ってみたところ、以下の作品があります。

alert("Hello");

ただし、以下はそうではありません...

$(document).ready(function() {
    alert("Hello there");
});
4

3 に答える 3

2

暗闇の中のショットですが、他のjsライブラリの1つがjQueryの使用と競合している可能性があります.$

試す:

jQuery(document).ready(function($) {
  // code here, using $ as usual

  $('#button').click(function() {
    alert("Test message");
  });
});
于 2013-03-15T22:28:14.023 に答える
0

.html

<button type="button" class="btn" id="first-test">My button</button>

.js

$(function() {
   $("button#first-test").on("click",function() {     
     alert(hi); 
   });            
});
于 2013-03-15T22:20:46.983 に答える
0

これを試して、コンソールをチェックして、イベントが発生しており、jQuery が要素を見つけられることを確認してください。

$(document).ready(function() {
    console.log($('#button').size());
});

何も得られない場合は、競合が発生しているか、他のライブラリとのエラーが原因で残りのスクリプトの実行が妨げられている可能性があります。

于 2013-03-16T09:43:45.083 に答える