2012-02-15 21 views
0

私のクリックjquery機能は動作していません、それはまったくコンソールでエラーも出ません。 はこちらのリンクです -クリック機能が動作しません

<a href="#lang" id="language">Edit</a>  

、ここでクリック機能

$('a').click(function() { 
var item = $(this).attr("id"); 
alert(item);   
return false; 
}); 

それは警告ボックスを飛び出していないで、またそれは私にコンソールでエラーを示しています。

オーケーは、誰かがより多くの情報を求めて -

リンクは、ボタンを押すことで、jQueryを使って追加され、IDとしては、入力フィールドの値の1を取り、入力フィールドからIDを持つリンクとして挿入します。重複IDはありません。すべてのjavascriptスクリプトはheadタグの最後にあり、クリック機能は最後に配置されています。

+1

は、コンテキストが必要です。コードは問題ありません。おそらく*あなたのページにコードがあり、それが問題です。 – jvenema

+0

DOM準備完了イベントハンドラのコードはありますか?もしそうでなければ、実行時に 'a'要素は存在しません。 –

+0

あなたはそのコードがどこにあるのか教えていただけますか? '$(document).ready'イベントでは?どこ? 'click 'をバインドするコードがヘッダーにある場合、' a 'タグはまだ作成されていないので、$(' a ')は空のセットになります。 – Diego

答えて

0

<a>タグが動的に挿入されていることを、あなたの編集をもとに、あなたは、クリックハンドラをアタッチするjQueryの.on()(jQueryのバージョン1.7以降)または.live()メソッドを使用する必要があります。

+0

私の問題は解決しましたが、今は2番目の質問です。 'var item = $(this).attr( "id"); $( '#language_c')。remove(item); '#language_c入力フィールドから項目を削除しないのはなぜですか? 2つの行はクリック機能の間にあります –

+0

@Thatsmeeee:この回答が参考になった場合は、投票してください。あなたの問題を解決した場合は、[受理したものとしてマークする]ことを検討してください(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。あなたの2番目の問題に関しては、 '.remove()'はidではなく引数としてセレクタをとります。その特定の入力フィールドを削除するには、単に '$( '#language_c')を呼び出します。remove();' –

+0

ありがとう!受け入れられたとマーク:! –

0

の前にのコードが実行される前に、他のエラーがあると思われます。これにより、正しいJavascriptの実行が妨げられます。

編集:または Javascriptコードを挿入すると、DOMはまだ準備ができていません。次に使用する必要があります

$(function() { 
    $('a').click(function() { 
    var item = $(this).attr("id"); 
    alert(item);   
    return false; 
    });​ 
}); 
0

準備完了イベントに、または要素が表示された後でラッピングしていますか?もしそうなら、それはうまくいくはずです。

http://jsfiddle.net/sWeRf/

+0

これは私のための方法です - http://jsfiddle.net/sWeRf/2/私はコードを少し変更しましたが、それはほぼ同じです。 –

0

どちらかのページで<a href="#lang" id="language">Edit</a>後にこのコードを配置、または$(document).ready(function() { //Place code here. });

0

では、次のとあなたのJSコードを交換してみてくださいと頭に入れて

(HEADタグの間に置きます)
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('a#lang').click(function(){ 
     alert($(this).attr('id')); 
    }); 
}); 
</script> 
0

JQueryクリックハンドラを適用する前に、ドキュメントがロードされていることを確認していますか?

$(document).ready(function() { 
    $('a').click(function() { 
     var item = $(this).attr("id"); 
     alert(item);   
     return false; 
    }); 
}); 
0

document.readyを使用する代わりに、同じことをする無名関数を使用できます。このよう

:項目を削除するには

$(function() { 
    $('a').click(function() { 
     var item = $(this).attr("id"); 
     alert(item);   
     return false; 
    }); 
}); 
0

は、次の操作を行います。

$('#language_c').remove(); 
関連する問題