2011-10-17 14 views
0

ajaxコールが作成されていないjqueryに問題があります。 また、クリックがdomの一番上にならないようにして、.warning divを非表示にするべきではありません。Jquery ajaxコールが作成されていません

POSTリクエストが行われていないことを火かき棒で確認できます。

$(document).click(function(e) { 
    if($('.warning').hasClass("active")) 
     $('.warning').hide(); 
}); 

$('.ero').click(function(e) { 
    e.stopPropagation(); 
    e.preventDefault(); 
      $.ajax({ 
     type: 'POST', 
     url: '/stem_op/3', 
     data: {id: idv}, 
     success:function(msg){ 
     $('.warning').fadeIn(500).css({ 
     display: 'block', 
     position: 'absolute', 
     left: position.left + 50, 
     top: position.top - 25 
    }).append(msg).addClass("active")} 
     });  
}); 
+0

クリックイベントが呼び出されていますか?要素が準備される前にイベントハンドラが追加されていますか? – epascarello

答えて

1

を使用してみてください。 .ready()がなければ、コードはすぐに実行されます。デリゲートではなく.click()を使用しているため、実行時にバインドするものはありません。あなたはおそらく.ero要素がユーザーとの対話に基づいてJSを動的に追加持ってしようとしている場合は

$(document).ready(function() { 
    //code goes here 
}); 

、あなたが使用することをお勧めします:

同様ダイアーは、上記の準備でそれをラップし、言いますdelegate

また、.click()は基本的にbind()へのショートカットですので、少なくともイベントを名前空間にするようにしてみてください。これにより、その要素で同じイベントを使用している可能性のある他のコードに影響を与えることなく、イベントハンドラのバインド、バインド解除、および再バインドが非常に簡単になります。

//instead of 
$(".ero").click(function(e) { }); 

//something like this 
$(".ero").bind("click.mynamespace", function(e) { 
    //code here 
}); 
+0

私はクラスエロ –

+0

と文書.ready –

+0

とリンクしていますので、.clickはdocument.ready()にラップされていますか?その場合は、Ajaxコールに完全メソッドを追加してみてください。 2つの引数dataとstatusを取得します。ステータスが要求されていることを確認するためにconsole.logを実行します。別のオプションは、イベントがキャプチャされているかどうかを確認できるように、clickハンドラ内の関数の先頭にconsole.logをスローすることです。 – vernonk

0

$( 'ERO')おそらくまだ存在しませんでした:

は、ここに私のjqueryのです。 readyに包む、またはEROクラス化要素がまだ存在していないヘッドに含まれている場合ええ、あなたのコードに基づいてlive

$('.ero').live('click', function() { ... } 
+0

私はクラスエロとのリンクを持っています –

関連する問題