Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在.on()方法中触发两个事件_Javascript_Jquery_Jquery Events - Fatal编程技术网

Javascript 无法在.on()方法中触发两个事件

Javascript 无法在.on()方法中触发两个事件,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,这是我目前的工作代码。有两个事件,一个是click(),另一个是load() 使用此jQuery之后,它将不起作用。我希望避免重复代码,并使脚本更干净和简单。请帮我把它弄干净。您的一个活动被绑定在窗口上。当您在上使用.on时,会忽略该窗口,并且HTML元素没有加载侦听器。如果有两个元素要将事件绑定到中,则仍应使用.on事件。单击和。加载是的包装。on是的包装 为了便于使用,只需声明一个命名函数并将其用作处理程序: function handler(){ /* Your code */ }

这是我目前的工作代码。有两个事件,一个是
click()
,另一个是
load()


使用此jQuery之后,它将不起作用。我希望避免重复代码,并使脚本更干净和简单。请帮我把它弄干净。

您的一个活动被绑定在窗口上。当您在上使用
.on时,会忽略该窗口,并且HTML元素没有
加载
侦听器。如果有两个元素要将事件绑定到
中,则仍应使用
.on
事件。单击
。加载
的包装。on
的包装

为了便于使用,只需声明一个命名函数并将其用作处理程序:

function handler(){
    /* Your code */
}

$(".city,.state,.zip,.layout-slider,.jslider-pointer").on( 'click', handler );
$( window ).on( 'load', handler );

窗口上绑定了您的一个事件。当您在
上使用
.on时,会忽略该窗口,并且HTML元素没有
加载
侦听器。如果有两个元素要将事件绑定到
中,则仍应使用
.on
事件。单击
。加载
的包装。on
的包装

为了便于使用,只需声明一个命名函数并将其用作处理程序:

function handler(){
    /* Your code */
}

$(".city,.state,.zip,.layout-slider,.jslider-pointer").on( 'click', handler );
$( window ).on( 'load', handler );

我想你需要做些类似的事情

<script>
    function handler() {...}

    $(document).on('ready', function(){
        $(".city,.state,.zip,.layout-slider,.jslider-pointer").on('click', handler);
    });
    $(window).on('load', handler);
</script>

函数处理程序(){…}
$(文档).on('ready',function(){
$(.city、.state、.zip、.layout slider、.jslider pointer”)。打开('click',handler);
});
$(窗口).on('load',处理程序);

我认为你需要这样做

<script>
    function handler() {...}

    $(document).on('ready', function(){
        $(".city,.state,.zip,.layout-slider,.jslider-pointer").on('click', handler);
    });
    $(window).on('load', handler);
</script>

函数处理程序(){…}
$(文档).on('ready',function(){
$(.city、.state、.zip、.layout slider、.jslider pointer”)。打开('click',handler);
});
$(窗口).on('load',处理程序);

取出函数,然后将函数名传递到
load
click
。取出函数,然后将函数名传递到
load
click
。on('load',handler)
正在工作,但
打开('click',handler)不工作。我尝试了
。单击(处理程序)
当我在(“单击”,function(){r()})
上使用此
时,它会工作。谢谢你的回答,我得到了另一个答案,其中一个也在工作。如果你在问题中的代码在工作,这一个也应该。另外,我的与上面的唯一区别是
.ready
,如果您将脚本放在底部,则不需要它。对不起,我的错误。实际上,我在(“click”,function(){r()})
上使用了
,这就是为什么另一个答案有效。为供您参考,我的代码在页面底部。@smartrahat代码是高于确切代码还是减少了?我想弄明白为什么需要一个包装器函数。另外,如果您能给我一个更新代码的摘要,我可能能为您提供更多帮助。
.on('load',handler)
正在工作,但
on('click',handler)不工作。我尝试了
。单击(处理程序)
当我在(“单击”,function(){r()})
上使用此
时,它会工作。谢谢你的回答,我得到了另一个答案,其中一个也在工作。如果你在问题中的代码在工作,这一个也应该。另外,我的与上面的唯一区别是
.ready
,如果您将脚本放在底部,则不需要它。对不起,我的错误。实际上,我在(“click”,function(){r()})
上使用了
,这就是为什么另一个答案有效。为供您参考,我的代码在页面底部。@smartrahat代码是高于确切代码还是减少了?我想弄明白为什么需要一个包装器函数。此外,如果你能给我一个你更新代码的pastbin,我可能能帮助你更多。