如何从$ .fn外部更改var

时间:2014-04-07 16:17:09

标签: javascript jquery

如何在以下函数中更改var = messages(通过extend)的值:

我的代码:

(function($) { 
    $.fn.test= function(options) { 
        var settings = {
             value_1: "100"
        }
        // Extend the options so they work with the plugin
        if(options) {
            $.extend(settings, options);
        }

         var messages = {
               remote: "something in german"
          }

        return this.each(function() { 

            console.log("german message ",messages.remote);        
            this.addEventListener("submit", function(o){
                   console.log("submit");
                   console.log("shout be in english: ",messages.remote);
                  o.preventDefault()
            })       

        })

    }
}(jQuery)); 

我尝试了这个没有取得任何成功:

(function($) {
    $.extend($.fn.formCheck.messages, {
          remote: "Please change this."
    });
}(jQuery));

我的jsfiddle:here

我见过similuar here

1 个答案:

答案 0 :(得分:1)

JSFIDDLE DEMO

$.fn.formCheck.messages不起作用的原因是因为undefinedmessages。您尚未将formCheck附加到 $.fn.formCheck.messages = { required: "Dieses Feld ist ein Pflichtfeld.", remote: "something in german", email: "Geben Sie bitte eine gültige E-Mail Adresse ein.", } 。你可以这样做:

messages

分配$.fn.formCheck = function(options) {..的代码也位于messages内  功能。这意味着在调用该函数之前message不存在。为了解决这个问题,请在函数调用之外移动声明,这样它就会一直存在。


如果您愿意,您还可以选择存储本地var messages = $.fn.formCheck.messages; var:

{{1}}

http://jsfiddle.net/JEd22/