jQuery:一个接一个地触发.click()事件

前端之家收集整理的这篇文章主要介绍了jQuery:一个接一个地触发.click()事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一种情况,我必须在页面上执行多个操作才能初始化它的设置.我还没有任何代码,因为坦率地说,我很难找到一个可以开始的地方.

这是我想要做的:

jQuery(document).ready(function($) {

    $('#element-one').trigger('click');
    // wait for the first trigger event to complete (it loads ajax content into a div tag)
    // then move on to this one...
    $('#element-two').trigger('click');
    // then move on to this one...
    $('#element-three').trigger('click');
    // then move on to this one...
    $('#element-four').trigger('click');
    // then finally move on to the last one
    $('#element-five').trigger('click');

});

这是如何完成的?

解决方法@H_404_10@
在你的第一个处理程序中,你可以使用延迟对象,在ajax成功回调中解决它并返回一个promise,这样你就可以像这样链接你的代码(我还没有测试过)
$.when(
    $('#element-one').triggerHandler('click') /* asynchronous task */
 ).done(function() {
     $('#element-two').triggerHandler('click') /* synchronous task */
     ...
     $('#element-five').triggerHandler('click') /* synchronous task */
 })

http://api.jquery.com/category/deferred-object/

jQuery.Deferred(),introduced in version 1.5,is a chainable utility object that can register multiple callbacks into callback queues,invoke callback queues,and relay the success or failure state of any synchronous or asynchronous function.

注意:我使用triggerHandle()而不是trigger():http://api.jquery.com/triggerHandler/只是为了与你连接处理程序的元素无关.如果它适合您的需要,也可以使用trigger()

猜你在找的jQuery相关文章