大佬教程收集整理的这篇文章主要介绍了jQuery插件:调用回调方法,然后可以根据响应调用插件函数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
(function($) { function MyPlugin(el,options) { this.element = $(el); this.myInput = false; this.options = $.extend( { onSave:function(){} },options); this.initialize(); } $.fn.myPlugin = function(options) { var control = new MyPlugin(this.get(0),options); return control; }; MyPlugin.prototype = { initialize:function() { var me = this; //specifics shouldn't really matter //it creates some HTML to go inside the element //within that HTML is an input,which I can successfully invoke keyup: me.myInput.keyup(function(event) { if(keyPressIsEnter(event) me.saveFunction(); }); },saveFunction:function() { var value = this.myInput.val(); this.options.onSave(value); //CURRENTLY I CALL succesS ANIMATION successAnimation(); },successAnimation:function() { //do something to the markup within element for success },failureAnimation:function() { //do something to the markup within element for failure } }; })(jQuery);
$("myDiv").myPlugin({onSave:function(value){myAjaxSaveFunction(value);});
通过此设置,插件,保存功能和动画都可以正常工作(假设从未出现过错误).但是,myAjaxSaveFunction是异步的,可能会返回成功或失败.我目前在插件中有保存功能,调用成功动画.如果我让myAjaxSaveFunction返回一个true / false,我可以(理论上)在插件中使用该返回值来确定是运行成功还是失败,但是如果@L_674_13@是异步的话则不行.
那么,这种情况通常如何处理?为了重用,我需要能够自定义处理数据的@L_674_13@作为可选的回调,但我需要插件等待它是否根据@L_674_13@的结果运行成功/失败动画(可能是异步的,或者可能不是).
@Kevin B:你在暗示这个吗?
saveFunction:function() { var value = this.myInput.val(); var success = this.options.onSave(value); if(success) successAnimation(); else failureAnimation(); },
saveFunction:function() { var value = this.myInput.val(); var success = this.options.onSave(value); if(success && success.promisE) success.promise().done(successAnimation).fail(failureAnimation); elseif (success) successAnimation(); else failureAnimation(); },
现在,您可以像这样使用它:
$("myDiv").myPlugin({onSave:function(value){return myAjaxSaveFunction(value);}); function myAjaxSaveFunction(value) { return $.ajax({...}); }
以上是大佬教程为你收集整理的jQuery插件:调用回调方法,然后可以根据响应调用插件函数全部内容,希望文章能够帮你解决jQuery插件:调用回调方法,然后可以根据响应调用插件函数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。