我正在尝试创建一个下拉列表,当用户持有SHIFT键时,它将在所有其他下拉列表中选择相同的索引.
目前,我正在做以下事情:
$(document).on('keyup keydown', function (e) { shifted = e.shiftKey });
$(document).on('change', '.report_info select', function (e) {
if (shifted) {
//Code to change other drop down lists.
}
});
Run Code Online (Sandbox Code Playgroud)
仅当您在进入下拉列表之前按住Shift键时才有效.如果您在DDL内并按下shift键,则keyup/keydown事件将不会触发并shifted保持不变false
有没有办法在下拉列表聚焦时捕获keyup/keydown事件?
编辑:
看起来它可能只是Chrome的问题,只是尝试添加以下内容,它适用于Firefox和IE,但不适用于Chrome:
$(document).on('keyup keydown', 'select', function (e) {
shifted = e.shiftKey;
});
Run Code Online (Sandbox Code Playgroud)
这是一个不适用于chrome的小提琴:http://jsfiddle.net/ue6xqm1q/4
我使用JQuery Cycle 2,需要在显示时显示幻灯片的索引.
这是HTML:
<div id="slideshow" data-cycle-auto-height="container" data-cycle-slides="> div" >
<div>slide 1</div>
<div>slide 2 </div>
<div>slide 3 </div>
<div>slide 4</div>
</div>
<div id="caption"></div>
Run Code Online (Sandbox Code Playgroud)
这是Javascript:
$('#slideshow').cycle({
delay: 0
});
$('#slideshow').on('cycle-before', function (e, optionHash, outgoingSlideEl, incomingSlideEl, forwardFlag) {
var caption = (optionHash.currSlide + 1) + ' of ' + optionHash.slideCount;
$('#caption').html(caption);
});
Run Code Online (Sandbox Code Playgroud)
这是小提琴演示:
http://jsfiddle.net/mddc/kKD9S/1/
问题是,在页面加载时,显示第一张幻灯片,但未触发事件"cycle-before",并且第一张幻灯片似乎在最后一张处理.
我做错了什么?
谢谢!