Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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 jquery组合就绪并单击事件_Javascript_Jquery - Fatal编程技术网

Javascript jquery组合就绪并单击事件

Javascript jquery组合就绪并单击事件,javascript,jquery,Javascript,Jquery,因此,我有一段同样的代码,用于Ready和Click事件,但当我尝试组合它们时,它不起作用 $("input[name='reimburse']").on("ready click", function() { //some code }); $("input[name='reimburse']").on("ready", function() { //some code }); 我认为它必须使用Ready函数,因为即使这样也不起作用 $("input[name='reimb

因此,我有一段同样的代码,用于Ready和Click事件,但当我尝试组合它们时,它不起作用

$("input[name='reimburse']").on("ready click", function() {
    //some code
});
$("input[name='reimburse']").on("ready", function() {
    //some code
});
我认为它必须使用Ready函数,因为即使这样也不起作用

$("input[name='reimburse']").on("ready click", function() {
    //some code
});
$("input[name='reimburse']").on("ready", function() {
    //some code
});
相反,我必须这样做以实现就绪功能

$("input[name='reimburse']").ready(function() {
    //some code
});
除了创建另一个JS函数并从两个不同的声明事件调用该方法之外,我如何实现我的初始代码?为什么在(“就绪”)上调用
不起作用

编辑: 我注意到,
ready
事件不适用于单个DOM,应该使用
load
。我已经试过了,但仍然不起作用。只有
单击
事件有效。我也尝试过将
上的替换为绑定,同样的情况也发生了。

尝试使用

根据文件

通过包含每个事件类型,可以一次绑定多个事件类型 被一个空格隔开

注意,
ready
document
有效,不应用于元素。要获得类似的功能,请使用
load

$("input[name='reimburse']").bind("load click", function() {
    //some code
});

从这里的jQuery文档:

还有$(document).on(“ready”,handler),从jQuery1.8开始就不推荐使用。这与ready方法的行为类似,但是如果ready事件已经触发,并且您尝试执行。在(“ready”)上,绑定处理程序将不会执行。以这种方式绑定的就绪处理程序将在上述其他三种方法的任何绑定之后执行


虽然您不应该尽可能使用不推荐的方法,但我很好奇,您将事件侦听器设置在哪里

事件
ready
适用于文档,而不是单个DOM元素。因此,没有特定的
ready
事件应用于
“input[name='repaite']”
DOM元素

如果您试图在首次加载页面和触发特定单击事件时触发相同的函数,则可以将通用事件处理代码放入命名函数中,然后从两个单独的事件处理程序引用该函数:

function myHandler(e) {
    // code here
}

$(document).ready(myHandler);
$("input[name='reimburse']").on("click", myHandler);
不过,上面的最后一行代码只有在已经加载了那些DOM元素的情况下才起作用。因此,您可能需要将该行代码放入
.ready()
处理程序中(取决于代码的运行位置)

下面是另一个相关的答案:

为什么叫“准备就绪”不起作用

因为jQuery决定不支持这种结构。jQuery用于支持
$(document).on(“ready”,handler)
,但从jQuery v1.8开始,该支持已被弃用(例如,您不应该使用它,因为它将被删除)。根据,这三种形式可用于
.ready()


如果在初始化时必须同时指定事件处理程序和调用函数会让您感到困扰,那么您可以创建自己的插件来完成这一任务:

 $.fn.initOn = function(events, handler) {
     this.on(events, handler);
     handler();
 }
然后,与此相反:

$(document).ready(function() {
    $("input[name='reimburse']").on("click", myHandler);
    myHandler();
});
你可以这样做:

$(document).ready(function() {
    $("input[name='reimburse']").initOn("click", myHandler);
});

您只需模仿“点击就绪”即可:

jQuery(document).ready(function () {

    $("input[name='reimburse']").click(function() {
        //some code
    });

    $("input[name='reimburse']").click();
});

据我所知,“bind”的问题在于它没有将事件绑定到动态添加的DOM元素,这是“.on”的优点。不幸的是,这也不起作用。单击可以工作,但是现在,
ready
portionI试图避免这样做,因为它看起来很草率。此外,此页面有许多类似的事件,如果不需要,手动触发一系列单击事件似乎不太好。我尝试了
document.ready
方法内部和外部。同样的结果。我希望避免这样做,因为我在这个页面上有多个DOM需要这种行为。因此,这意味着我必须创建一组
myHandler()
函数,并像您在示例中所示的那样显式调用每一个函数两次。如果这是唯一的选择,那么就这样吧,但它只是看起来ugly@RaymondHolguin-你说的“多个DOM”是什么意思?每个文档只有一个DOM(包含多个对象),因此我认为您必须详细解释您的实际问题,然后我们才能为您提供最好的帮助。@RaymondHolguin-请参阅我在答案末尾添加的自定义选项。
jQuery(document).ready(function () {

    $("input[name='reimburse']").click(function() {
        //some code
    });

    $("input[name='reimburse']").click();
});