久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Jquery Plugins,從其他方法調用函數

Jquery Plugins, calling functions from other methods(Jquery Plugins,從其他方法調用函數)
本文介紹了Jquery Plugins,從其他方法調用函數的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

就像這里的許多其他類似問題一樣,我正在編寫我的第一個 jQuery 插件.它旨在采用一個選擇元素并將選項替換為可單擊的列表元素,以用作樣本.我的主要功能運行良好,但我需要添加調用另一個方法的能力,這將禁用某些選項.我的問題是這樣做時,我需要綁定一些點擊元素并取消綁定其他元素.

Like so many other similar questions on here, I am writing my first jQuery plugin. It's intended to take a select element and replace the options with clickable list elements, to be used as swatches. I've got the main functionality working great, but I need to add the ability to call another method, which will disable certain options. My problem is that when doing this, I need to bind some click elements and unbind others.

目前我的原始綁定包含在我的init"方法中的一個函數中.我需要能夠從另一個禁用"方法調用該函數.所以這里有一些代碼:

Currently my original binding is contained in a function inside my 'init' method. I need to be able to call that function from another 'disable' method. So here's some code:

(function($){

var methods = {

    // Init method
        init    : function(options) {
            // Set options
            var
                defaults = {
                        clickCallback:  function(){} // Define empty function for click callback
                  }
            ,   settings = $.extend({}, defaults, options)


            // Function to bind options
            function fnBindOptions(var1, var2, var3) {
                // Stuff to bind elements

                    // Hit the click callback
                    settings.clickCallback.call(this); 

            }   

            return this.each(function() {

                // Check that we're dealing with a select element
                if(element.is('select')) {

                    // Loop through the select options and create list items for them
                    $('option', element).each(function() {

                        // Stuff to create list elements

                        // Bind click handler to the new list elements
                        fnBindOptions(var1, va2, var3);
                    });

                }

            });

            // return 
            return this();              
        }


    // Disable buttons method
    ,   disable : function(options) {

            // I need to access fnBindOptions from here
            $(elementID).children('li').removeClass('disabled').each(function(){
                fnBindOptions(var1, var2, var3);
            });

        }
};

這是我的問題:我需要在禁用每個選項之前調用綁定函數 - 但我無法從 disable 方法中訪問 fnBindOptions - 因為 fnBindOptions 包含來自設置"變量的回調,所以我可以也不要將它移到init"方法之外.

Here's my problem: I need to call the bind function on each option before disabling it - but I can't access fnBindOptions from within the disable method - and because fnBindOptions includes a callback from the 'settings' variable, I can't move it outside of the 'init' method either.

那么,這里有人有什么建議嗎?

So, does anyone have any advice here?

謝謝!

推薦答案

解決這個問題的一種方法是把你的 defaultssettingsbindOptionsmethods 對象(或更廣泛范圍內的另一個對象)中的 code> 函數并相應地引用它們:

One way to solve this is to put your defaults, settings and bindOptions function in the methods object (or another object in the broader scope) and reference them accordingly:

var methods = {
    defaults: {
        clickCallback: function() {}
    },
    settings: {},

    bindOptions: function(var1, var2, var3) {
        // Stuff to bind elements
        // Hit the click callback
        methods.settings.clickCallback.call(this);
    },

    // Init method
    init: function(options) {
        methods.settings = $.extend({}, methods.defaults, options);

        return this.each(function() {
            if (element.is('select')) {
                $('option', element).each(function() {
                    // Stuff to create list elements
                    // Bind click handler to the new list elements
                    methods.bindOptions(var1, va2, var3);
                });
            }
        });
    },

    // Disable buttons method
    disable: function(options) {
        $(elementID).children('li')
                    .removeClass('disabled')
                    .each(function() {
            methods.bindOptions(var1, var2, var3);
        });
    }
};

這篇關于Jquery Plugins,從其他方法調用函數的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

jQuery/JavaScript Library for avatar creation?(用于創建頭像的 jQuery/JavaScript 庫?)
How to do following mask input problem?(如何做以下掩碼輸入問題?)
Issues Setting Value/Label Using DropKick Javascript(使用 DropKick Javascript 設置值/標簽的問題)
how to unit-test private methods in jquery plugins?(如何對 jquery 插件中的私有方法進行單元測試?)
stellar.js - configuring offsets / aligning elements for a vertical scrolling website?(stellar.js - 為垂直滾動網站配置偏移量/對齊元素?)
jQuery masked input plugin. select all content when textbox receives focus(jQuery 屏蔽輸入插件.當文本框獲得焦點時選擇所有內容)
主站蜘蛛池模板: 欧美一区二区三区在线观看视频 | 亚洲最大av| 一区久久| 大陆一级毛片免费视频观看 | 狠狠操电影 | 久久国产精品72免费观看 | 成人a免费| 亚洲国产一区二区视频 | 久久综合激情 | 亚洲高清视频在线 | 综合第一页 | 五月槐花香 | 正在播放国产精品 | 亚洲精品久久久久久久久久久久久 | 日韩欧美在线观看一区 | 久久99精品久久久久久国产越南 | 国产日韩欧美在线 | 国产精品一区久久久 | 成人av在线播放 | 久久综合香蕉 | 亚洲综合日韩精品欧美综合区 | 国产一区免费视频 | 国产精品视频999 | 日日干干夜夜 | 久久草在线视频 | www.99re| 亚洲一区二区三区桃乃木香奈 | 成年人网站在线观看视频 | 亚洲人精品午夜 | 国产成人av一区二区三区 | 日本一区二区不卡 | 日韩中文字幕在线观看 | 国产精品成人av | 91影院在线观看 | 在线免费观看日本 | 日本视频免费观看 | 国产精品久久久久久吹潮日韩动画 | 日韩精品一区二区三区视频播放 | 99国产视频| 国产高清在线精品一区二区三区 | 日日操av |