【问题标题】:jQuery Execute OrderjQuery 执行顺序
【发布时间】:2011-04-12 06:45:02
【问题描述】:

我正在使用以下 jQuery 插件,它在指定元素上有点击动作时执行:

http://www.andresvidal.com/labs/relcopy.html

我还为同一个元素创建了一个点击函数,但我希望它插件之后执行。然而事实并非如此,点击函数总是先执行,从而导致问题。

例如,请检查我的代码,我是 jQuery 新手,所以任何建议/帮助将不胜感激!

$.getScript('../js/relCopy.js', function() {

            $('#AddTable').relCopy({
                limit: 10,
                excludeSelector: '.newListSelected'
            });

$('#AddTable').click(function() {
    do something here after relcopy has finished
});

【问题讨论】:

    标签: jquery-plugins jquery jquery-selectors


    【解决方案1】:

    事件处理程序按照它们被绑定的顺序执行,并且由于来自$.getScript() 的回调在该脚本加载后执行,所以它绑定的是click 处理程序你的处理程序之后。

    所以得到你想要的顺序,你需要按照你想要的顺序绑定,这意味着在回调中绑定你的点击处理程序,就像这样:

    $.getScript('../js/relCopy.js', function() {
      $('#AddTable').relCopy({
        limit: 10,
        excludeSelector: '.newListSelected'
      }).click(function() {
        //do something here after relcopy has finished
      });
    });
    

    【讨论】:

    • 谢谢,完美!您的意思是 $.getScript() 的回调仅在加载 relCopy.js 后执行?如果是这样,它不应该在继续执行我的点击处理程序之前完成 relCopy.js 的执行吗?
    • @user435216 - 第一个问题是,第二个问题不是...$.getScript() 是一个异步操作,它在响应返回时完成,然后执行success 回调:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 2016-12-01
    • 1970-01-01
    相关资源
    最近更新 更多