简体   繁体   English

页面加载时的jQuery绑定事件

[英]jQuery bind event on page load

I have a small script that I would like to complete on change of value, on click, or on keyup on certain elements, but I also want it to happen on page load (or when the elements first load). 我有一个小脚本,我想在某些元素的值更改,单击或键入时完成该脚本,但是我希望它在页面加载时(或在元素首次加载时)发生。

The code that I have now will do it, but doesn't do it originally on page load, you have to complete one of the 3 triggers first. 我现在拥有的代码可以执行此操作,但是最初不会在页面加载时执行它,您必须首先完成3个触发器之一。 Is it possible to do this without writing a new script? 是否可以在不编写新脚本的情况下执行此操作?

$(document).ready(function() {
    $('.orderinput, .paymethod, .serverselect').bind('change click keyup', function(event) {}
});

Take your logic out, and put it into a separate function. 排除逻辑,然后将其放入单独的函数中。 Then call that function in your ready clause. 然后在您的ready子句中调用该函数。 For example: 例如:

$(document).ready(function() {
    $('.orderinput').on('change click keyup', function(event) { myComplexFunc(event); } );

    var myComplexFunc = function(event) {
        console.log('Triggered');
    }

    myComplexFunc();

});

Along the lines of Mike L, I would suggest you use .on instead of .bind as it is the preferred method for attaching event handlers to a document, see this . 与Mike L .on ,我建议您使用.on而不是.bind因为它是将事件处理程序附加到文档的首选方法,请参见this

If you want to avoid writing a separate function you can trigger an event after the event handler has been attached directly on the element like this: 如果要避免编写单独的函数,可以将事件处理程序直接附加到元素上后触发事件,如下所示:

$(".yourElementClass").click(); //or .change() or .keyup()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM