Я создал плагин для XUI, например:
xui.extend({
myPlugin : function(){
var options = [];
function methodOne(obj){
}
function methodTwo(){
}
}
});
И теперь я могу позвонить:
<script type="text/javascript">
xui.ready(function(){
// call my plugin on an XUI object
x$('element').myPlugin();
});
</script>
Но мне также нужно иметь возможность доступа к некоторымметоды в плагине, что-то вроде этого (этот код не работает, но иллюстрирует то, чего я пытаюсь достичь)
<script type="text/javascript">
xui.ready(function(){
// call my plugin on an XUI object
x$('element').myPlugin();
var foo = bar;
// call one of my methods?
xui.fn.myPlugin.methodOne(foo);
});
</script>
Может ли кто-нибудь с немного большим опытом работы с мобильным XUIрамки протянуть руку?Приветствия
РЕДАКТИРОВАТЬ **
Ниже работает, хотя это, вероятно, не очень элегантно ...
xui.extend({
myPlugin : function(){
// create an API object
var api = {
'publicOne' : function(obj){
return methodOne(obj)
}
};
// add our API object to prototype
xui.fn.myPlugin.api = api;
/**
* the functions of the plugin
**/
// we'll expose this in the API object
function methodOne(obj){
// Do something with obj...
}
function methodTwo(){
}
}
});
И тогда на странице я могу использовать это:
<script type="text/javascript">
xui.ready(function(){
// call my plugin on an XUI object, which does its thing
x$('element').myPlugin();
// arbitary
var foo = x$('#bar');
// call one of the methods statically
xui.fn.myPlugin.api.pluginOne(foo);
});
</script>
Чтобы объяснить цель, я создаю что-то очень похожее на JQTouch, но, конечно, не полагаясь на мега jQuery и сидя просто сверхуXUI.У меня есть метод для обработки навигации по страницам, который обрабатывает переходы страницы, но мне нужно иметь возможность запускать метод также и программно.
Возможно, вышеизложенное поможет другим пользователям XUI, в настоящее время он работает для меняно, может быть, можно улучшить?