0

プロジェクトでaspテキストボックスといくつかのjavascriptコードを使用しています。

テキストボックスのスペースが無効になっていることを確認した後、他の人が直面している同様の問題を経験し、ほとんどの場合javascriptがこの種の問題を引き起こすことに気付きました。試してみたところ、jQueryライブラリ1.4.4が原因であることがわかりました。しかし、それを削除すると、スライドショーが無効になります。

これに対するより良いまたは適切な解決策は何でしょうか?

これがサンプルです。

私が試した結果は、ファイル「jq1.js」にある以下のスクリプトが問題を引き起こしていることを示しています。

$(function () {
  $('#MainGalleryData .test').lightBox();
  $('#MainGalleryData2 .test').lightBox();
  $('#MainGalleryData3 .test').lightBox();
  $('#MainGalleryData4 .test').lightBox();
  $('#MainGalleryData5 .test').lightBox();
  $('#MainGalleryData6 .test').lightBox();
  $('#MainGalleryData7 .test').lightBox();
  $('#MainGalleryData8 .test').lightBox();
  $('#MainGalleryData9 .test').lightBox();
  $('#MainGalleryData10 .test').lightBox();
  $('#MainGalleryData11 .test').lightBox();
  $('#MainGalleryData12 .test').lightBox();

});

jQuery(document).ready(function () {
  jQuery('#MainSlidesUl').fadeSlideShow();
});
4

1 に答える 1

1

<script src="js/jq1.js" type="text/javascript"></script> Search forをご覧ください。32これは、のキーコードですspace。次のコードがあります。

    if (settings.allowKeyboardCtrl) {
        jQuery(document).bind('keydown', function (e) {
            if (e.which == 39) {
                var nextSlide = ActSlide - 1;
                stopAutoplay();
                jumpTo(nextSlide);
            } else if (e.which == 37) {
                var prevSlide = ActSlide + 1;
                stopAutoplay();
                jumpTo(prevSlide);
            } else if (e.which == 32) {
                if (intval) { stopAutoplay(); }
                else { autoplay(); }
                return false;
            }
        });
    }

したがって、スペースを押すとfalseが返されます。これが、「エラー」の理由です。無効にするか、イベントが入力であるかどうかを確認する必要があります。例:

jQuery(document).bind('keydown', function (e) {
    if ($(event.target).is('input') == false) {
        ...
    }
});
于 2013-03-19T08:59:02.793 に答える