2015-11-16 58 views
0

當按下PageUp/PageDown鍵並滾動一個元素時,我需要捕獲它,但是我至今無法這樣做。我試過捕捉'Page Down'/'Page Up'鍵事件的問題

監聽「的keydown」事件**:當一個非滾動元素是重點,但事件觸發時,滾動元件的重點是,沒有事件觸發

$(window).on('keydown', function(e) 
{ 
    console.log(e.keyCode === 34); 
}); 

聽力對於「按鍵」事件**:任何情況下,在任何情況下

$(window).on('keypress', function(e) 
{ 
    console.log("keypress"); //does nothing 
}); 

監聽「滾動」觸發事件**:沒有事件觸發在任何情況下

$(window).scroll(function() 
{ 
    console.log("scrolling"); //does nothing 
}); 

我不知所措,我一直無法找到任何線索。 我試過我當前在jsFiddle中的代碼,它工作正常,所以它必須是更具體的東西。

+0

忘記在問題中包含括號,但它們在代碼中。 – DanTheMan

回答

0

所以我想要滾動的元素是一個SlickGrid表,它有它自己的滾動事件。

所以我寫了,根據他們的文檔:

this.grid.onScroll.subscribe(function(e, args) 
{ 
    console.log(e); 
} 

現在它在Page Down鍵/ Page Up鍵,按下觸發。

0

你也可以試試嗎?

$(window).bind('keydown', function(event) { 
    console.log(event.which === 33) }); 

該鍵盤鍵或鼠標按鈕被按下的事件

+0

沒有改進。我已經在jsFiddle中嘗試了我當前的代碼,並且它工作正常,所以它必須是特定於此應用程序的某些內容。 – DanTheMan

0

其實你的語法不正確,你缺少你的函數結束時關閉)的event.which屬性返回,你應該寫:

$(window).on('keydown', function(e) { 
 
    console.log(e.keyCode === 34); 
 
}); 
 

 
$(window).on('keypress', function(e) { 
 
    console.log("keypress"); //does nothing 
 
}); 
 

 
$(window).scroll(function() { 
 
    console.log("scrolling"); //does nothing 
 
});
#scroll { 
 
    max-height: 100px; 
 
    height: 100px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="scroll"> 
 

 
    <br>fghfjkjgfj 
 
    <br/>dfdfdfdf 
 
    <br/>dfdsf 
 
    <br/> 
 
    <br/> 
 
    <br/>dfdfdf 
 
    <br/> 
 
    <br/> 
 
    <br/>ssdsds 
 
    <br/>fdf 
 
    <br/> 
 
    <br/> 
 
    <br/> 
 
    <br/>fgfgfg 
 
    <br/>End 
 
</div>

和一切,將作爲預期編輯。

+0

我忘了在問題中包括括號,但他們在我的代碼中。更新我的問題。 – DanTheMan

+0

@DanTheGameMan你在哪個瀏覽器上運行你的代碼? –

1

而不是窗口嘗試使用文檔,因此它會考慮網頁上的當前文檔。

在你的代碼中有支架錯過匹配。

$(document).ready(function(){ 
 
    $(document).keypress(function(e){ 
 
     if(e.keyCode === 34){ 
 
     console.log('page down') 
 
     } 
 

 
    }); 
 
    
 

 
    $(document).keypress(function(e){ 
 
     console.log("keypress"); //console will print 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

希望這會爲你工作。

+0

謝謝你的建議 – Santosh

+0

這與窗口或文檔無關,即使它們附有'window''這些事件也會觸發。 –

+0

@chsdk根據我的看法,我給出了答案,我認爲在編程語言中有更多的場景和更多的實現方式。 – Santosh