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,这是 keycode for 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 回答