在事件内创建插件时无法访问jquery插件的外部函数

时间:2014-11-21 19:29:46

标签: jquery function jquery-plugins prototype

我似乎无法访问在点击事件中创建的插件的功能。 创建插件后,我创建了另一个通常会使用插件的外部函数的按钮,但似乎没有办法实现这个功能。 在document.ready事件期间创建插件时,我没有遇到访问该函数的问题。

有什么想法吗?

var pluginHolder = $('<div/>'); //just in case this was the issue
$("body").on("click","#profile_plugin",function(e)
{

pluginHolder = $('<div/>',{id:"coverCanvas"}); //Holding external button and plugin in a div
abutton = $('<button/>',{class:"buttonis"});
plugin = $('<div/>');

plugin.testClass({
    c1:2,
    c2:"ffffff",
    c3:940,
});
//works fine (plugin renders and fully functional)

plugin.appendTo(pluginHolder);
abutton.appendTo(pluginHolder);
pluginHolder.appendTo($(".container"); //Works  

console.log(plugin.testoutput()); //Uncaught TypeError: undefined is not a function 
abutton.on("click",doStuff);

function doStuff(e)
{
    console.log(plugin.testoutput()); //Uncaught TypeError: undefined is not a function 
    console.log(plugin[0].testoutput()); //Uncaught TypeError: undefined is not a function 
}

});

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,所以我将在此处发布以供将来参考:

var coverCanvasObj = null;
var divContainer = $('<div/>');
coverCanvasObj = divContainer.testClass({
    option1:2,
    option2:tru
});

所以我只需要访问render / container Div。

之外的testClass对象