javascript - Jquery 从外部函数调用定义的函数

标签 javascript jquery function

<分区>

嘿,我有一个像这样的 jQuery 函数:

$.fn.sexyForm = function (style){
    $('.sexyform').on('click',function(){
        $(this).find('input').trigger('focus');
    });

        var $input = $('.sexyform');
    ****************************************************
    ************* MORE CODE HERE TAKEN OUT *************
    ****************************************************
    function closeBox(element) {
       //console.log("Closing", element);
       //Get the element that needs to be closed
       var $el = $(element);
       //Grab the data we set on it
       var originalData = $el.data('original-styles');
       //console.log(originalData);
       var style = $el.data('style');
       //Reset the input

       $el.find('input').animate({
           left: originalData.startPosInput
       })
       $el.find('span').animate({
           width: originalData.startWidth,
           left: originalData.startPosPlace,
       })
   }
};

我正在尝试从这样的另一个位置调用它:

function clearAll() {
    console.log('hi');
    $('.input3').val('');       
    $('.input3').removeClass('form-open');
    closeBox($('.input3'));
    $("span[data-id*='txt']").each(function(index) {
        //enable ALL textboxes
        $(this).css("pointer-events", "auto");
        $(this).fadeTo("fast", 1.0);
        $('#searchTop').text('above');
    });

    $('#schoolSelect').prop('selectedIndex', 0).selectric('refresh');
    $('#roles').prop('selectedIndex', 0).selectric('refresh');
    $('#clearBtn').focus();
}

错误来自closeBox($('.input3'));。我已尝试执行以下操作:

$.fn.sexyForm.closeBox($('.input3'));

这也行不通。我错过了什么?

最佳答案

我可能不明白你在寻找什么@Stealth,但如果你想保留在 sexyForm 内定义的 closeBox 函数,另一种方法是传递某种形式的对象。例如:

$.fn.sexyForm = function(style, BoxObj) {
    // Code here...
    BoxObj.closeBox = function(element) {
    // Any other code...
   }
}

根据 BoxObj 的定义位置,您可以选择将 BoxObj 作为参数传递给 clearAll:

function clearAll(BoxObj) or () {
   // Code here
   BoxObj.closeBox($('.input3'));
   // More code 
}

关于javascript - Jquery 从外部函数调用定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39470853/

相关文章:

javascript - 回调中添加点击事件未绑定(bind)

javascript - 为什么一个 ko.mapping.fromJS 工作而另一个不工作?

javascript - CYPRESS:检查按钮是否被禁用的函数

PHP 函数和 SQL 失败

javascript - 如何从与同一元素关联的属性指令访问类 css 属性

javascript - Restangular:带参数的长 url

javascript - 如何在 php 中获取 javascript 动态行值?

javascript - 如何编写这个以在 onclick 上工作

javascript - 弹出框未显示

c - 如何用这些字符制作加法器函数?