加载HeadJS的脚本只在第二次单击时运行。如何在第一次点击时获得“航空发射器”?
http://jsfiddle.net/ynts/6hgEb/
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);
}); 发布于 2014-04-22 14:59:13
在调用launch函数之前,您需要等待插件初始化。有可以使用的onLoad事件:
var featherEditor = new Aviary.Feather({
apiKey: 12345,
apiVersion: 3,
onLoad: function() {
featherEditor.launch({
image: $id,
url: $src
});
}
}); 发布于 2016-04-03 10:42:32
回答mikebridge,当它没有第二次打开时:
一些黑暗的原因阻止羽毛被实例化不止一次。使用window.globalAviaryFeather保存实例。
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)
}
})
}https://stackoverflow.com/questions/23222589
复制相似问题