0

フォト ギャラリーのページがありますhttp://dev.dolina-imeniy.ru/fotogalereya/kp_usadba_tishnevo/ これを使用してクリック イベントをバインドし、false を返します

$('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;
    });

ただし、一部の画像では機能しません。なぜそれが現れるのですか?

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

4

4 に答える 4

3

何らかの理由でコードが壊れているため、false を返すには至りません。

e.preventDefault();デフォルトのアクションを停止するために使用できます

e.preventDefault();
于 2012-04-10T23:56:09.123 に答える
2

e.preventDefault() を呼び出してみる

詳細については、こちらをご覧ください: http://api.jquery.com/event.preventDefault/

于 2012-04-10T23:59:19.750 に答える
2

これは、関数が呼び出されたときに既に存在する要素にのみバインドされるためです。ドキュメントが読み込まれた後に作成されたすべてのリンクは、この関数にバインドされません。これらの要素の作成をリッスンし、関数をそれらにバインドするには、jQuery プラグインliveQueryを使用できます。それが役立つことを願っています。

于 2012-04-11T00:13:25.607 に答える
1

私はそれとは何の関係もないと思いますreturn false;event.preventDefault()カルーセルの仕組みに関係していると思います。画像が繰り返されるとコードが壊れるのは偶然ではありません。クリック イベントはおそらくバインドされていません。要素を移動するだけの場合はイベントを設定する必要がありますが、複製またはコピーしている場合はイベントが設定されない可能性があります。

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

于 2012-04-11T00:02:20.653 に答える