首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载HeadJS的脚本只在第二次单击时运行

加载HeadJS的脚本只在第二次单击时运行
EN

Stack Overflow用户
提问于 2014-04-22 14:35:08
回答 2查看 276关注 0票数 0

加载HeadJS的脚本只在第二次单击时运行。如何在第一次点击时获得“航空发射器”?

http://jsfiddle.net/ynts/6hgEb/

代码语言:javascript
复制
function aviary(id, src) {
    var $id = id;
    var $src = src;

    head.load(
        "http://feather.aviary.com/js/feather.js",
        function() {

            var featherEditor = new Aviary.Feather({
                apiKey: 12345,
                apiVersion: 3

                // ... ///
            });

            featherEditor.launch({
                image: $id,


                  url: $src
                });
            }
        ); 
}

$(document).on('click', 'img', function(){
    var $img = $(this).attr('src');
    aviary('edit-pic', $img);
}); 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-22 14:59:13

在调用launch函数之前,您需要等待插件初始化。有可以使用的onLoad事件:

代码语言:javascript
复制
var featherEditor = new Aviary.Feather({
                apiKey: 12345,
                apiVersion: 3,
                onLoad: function() {
                     featherEditor.launch({
                        image: $id,
                        url: $src
                    });
                }                                    
            }); 
票数 5
EN

Stack Overflow用户

发布于 2016-04-03 10:42:32

回答mikebridge,当它没有第二次打开时:

一些黑暗的原因阻止羽毛被实例化不止一次。使用window.globalAviaryFeather保存实例。

代码语言:javascript
复制
function launch(url) {
    window.globalAviaryFeather.launch({
        image: "imgId",
        url: url
    })
}

var url = "..."

if (window.globalAviaryFeather) {
    launch(url)

} else {
    window.globalAviaryFeather = new Aviary.Feather({
        ...
        onLoad: function() {
            self.launch(url)
        }
    })
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23222589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档