2012-04-10 11 views
0

私は、イベントをクリックして、偽戻り偽時々

$('a.link_photo').click(function(e) { 
var new_img = $(this).attr('href'); 
var photo_title = $(this).attr('title'); 
var photo_info = $('.photo_info', this).html(); 
$('#photo_view img').attr({ 
    src : new_img 
}); 
$('#photo_title').html(photo_title); 
$('#photo_info').html(photo_info); 
return false; 
    }); 

しかし、それは動作しない一部の画像の上にそれを返すバインドするためにこれを使用するフォトギャラリーhttp://dev.dolina-imeniy.ru/fotogalereya/kp_usadba_tishnevo/ とページを持って働いていません!なぜそれが現れる?

私の例では10画像(ut-1-foto.jpg)をクリックしてみてください。

答えて

2

これは、関数が呼び出されたときに既に存在している要素にのみバインドされるためです。ドキュメントがロードされた後に作成されたすべてのリンクは、この関数にバインドされません。これらの要素の作成を聞き取り、それらに関数をバインドするには、jQueryプラグインliveQueryを使用できます。私はそれが助けて欲しい

+0

ありがとうございました! – skywind

3

何らかの理由でコードが破損しているため、falseになることはありません。

あなたはより多くの情報については)デフォルトのアクションe.preventDefaultを(呼び出ししようと

e.preventDefault(); 
+0

この関数が処理を終了する前にデフォルトが実行されていて、falseが返されている可能性もあります。 – Fresheyeball

+0

試してみませんか?( – skywind

1

を私はreturn false;かを考えていません。 event.preventDefault()はそれと関係があります。私はそれがあなたのカルーセルがどのように機能するかと関係していると推測しています。イメージが繰り返し始まるとコードが壊れてしまうのは偶然ではありません。クリックイベントはおそらくはもはやバインドされていません。要素が移動されているだけの場合は、イベントを設定する必要がありますが、複製またはコピーされている場合は、イベントが発生していない可能性があります。

編集:あなたのスクリプトは「壊れた」リンクでも呼び出されていないことをデバッグすることで確認できます。

+0

どうすれば永遠にイベントをリバウンドできますか? – skywind

関連する問題