Js - 事件监听器在页面重新加载后只工作一次

时间:2012-08-01 19:30:34

标签: javascript jquery

事件监听器代码:

<script type="text/javascript">
    $(document).ready(function(){
        document.getElementById("pagenumber").addEventListener( "keydown", function( e ) {
        var keyCode = e.keyCode || e.which;

        if ( keyCode === 13 ) {
            Dajaxice.gallery.gallerypages(Dajax.process, {'p': document.getElementById('pagenumber').value })
        }}, false);

    });
</script>

问题是当我按下输入元素,更改页码并按回车键时,它只在页面重新加载后第一次有效。

可能是我的问题?

2 个答案:

答案 0 :(得分:1)

对Dajaxice对象不能说太多,但对于事件处理程序来说这似乎要容易得多:

$(document).ready(function(){
    $(document).on("keydown", "#pagenumber", function(e) {
        if ( e.which === 13 ) {
             Dajaxice.gallery.gallerypages(Dajax.process, {'p': this.value });
        }
    });
});

这是委托给文档级别的,所以如果输入元素被ajax替换,它应该仍然有效吗?

答案 1 :(得分:0)

$(document).ready();已过时。您应该使用$(document).on("ready", function());。 此外,.on()将相同的函数应用于新元素,并将其添加到具有相同类或ID的文档中。试试吧,祝你好运!