文档章节

jquery 闭包函数

攀爬的小瓜牛
 攀爬的小瓜牛
发布于 2015/03/25 11:40
字数 543
阅读 12
收藏 0

$(function(){

var checkoutShipping = {

/*

** Choose Shipping Address 

*/

chooseAddress: function(){

$(".jq_chooseShippingAddress").on("change", function(){


var $form = $(this).closest("form");


if($(this).val() != -1) {

var shippingAddressID = $(this).val(),

data = $.parseJSON($form.find("#shippingAddressJSON").text());


var shippingAddress = data[shippingAddressID];


$form.fillForm(shippingAddress);

$form.find("#sgAddressBookId").val($(this).val());


/*$form.find(".jq_singleShippingAddressForm").disabledForm(true);*/

}else {

/*$form.find(".jq_singleShippingAddressForm").disabledForm(false);*/

$form.find("#sgAddressBookId").val("");

$form.clearForm();

$(this).val("-1");

}

defaultAddresss();

});

}

};


checkoutShipping.chooseAddress();


/*

** Show add new address popup in muliple shipping address 

*/


var MulipleShippingAdress = {

settings: {

$currentSelect: "",

$currentSelectVal: ""

},

init: function(){

this.bindEvent();

this.submitShippingAddressForm();

this.submitMultipleShippingAddressForm();

},

bindEvent: function(){

var settings = this.settings;

// show shipping address popup

$(".jq_addNewAddress").on("change", function(event){

event.preventDefault();

settings.$currentSelect = $(this);

settings.$currentSelectVal = $(this).closest(".form-group").find("var[name=selectVal]");


if($(this).val() == -1){

$("#modalShippingAddress").modal("show");

}else {

settings.$currentSelectVal.text($(this).val());

}

});

// bind model hidden event 

$("#modalShippingAddress").on("hidden.bs.modal", function(event){

event.preventDefault();


$(this).find("form").clearForm();

settings.$currentSelect.val(settings.$currentSelectVal.text());

});


// bind modal cancel event

$("#modalShippingAddress .jq_cancel").on("click", function(event){

event.preventDefault();


$(this).closest(".modal").modal("hide");

});


},

submitShippingAddressForm: function(){

var settings = this.settings;

//ajax submit

$("#saveNewAddress").on("click", function(event){

event.preventDefault();

$(this).addClass("disabled");

$(this).attr("disabled", "disabled");

var address = $("#addNewShippingAddressForm #shippingFirstName").val() + ", " +

$("#addNewShippingAddressForm #shippingLastName").val()+ ", " +

$("#addNewShippingAddressForm #shippingAddress1").val();

var $this = $(this);

//clear error message

$('#addNewShippingAddressForm').find(".has-error").removeClass("has-error");

$('#addNewShippingAddressForm').find(".form-group label.error").detach();

                $('#addNewShippingAddressForm').ajaxSubmit({

                    success: function(data){

                        data = $.parseJSON(data);

                        if(typeof(data.status) !== undefined && data.status) {

                            // add shipping address option

                            $(".jq_addNewAddress").find("option:last").before('<option value="'+data.addressId+'" >'+ address + '</option>');

                            

                            settings.$currentSelectVal.text(data.addressId);


                            $("#modalShippingAddress").modal("hide");

                        } else {

                            //set error message on popup page

                            for ( var key in data.error ){

                                var $formGroup = $("#"+key).closest(".form-group");

                                var contentKey = data.error[key];

                                var contentValue = contentKeyParser(contentKey);

                                $formGroup.addClass("has-error");

                                $formGroup.append('<label class="error">'+contentValue+'</label>');

                             }

                         }

                         $this.removeClass("disabled");

                         $this.removeAttr("disabled");

                        

                     }

                });


});

},

submitMultipleShippingAddressForm: function(){

/*

* Bind Event

* submit multiple shipping address form 

*/

$(".jq_multipleShippingAddressSubmit").on("click", function(event){

event.preventDefault();

var isSubmit = true,

errorMap = $.parseJSON($("#multipleShippingAddressForm").find("var[name=errorMessage]").text());

$("#multipleShippingAddressForm .jq_addNewAddress").each(function(){

var value = $(this).val();

if( $.trim(value).length === 0 || value == -1 ) {

var $formGroup = $(this).closest(".form-group");

$formGroup.addClass("has-error");

if($formGroup.find("label.error").size() > 0){

$formGroup.find("label.error").html(errorMap.empty);

}else {

$formGroup.append('<label class="error">'+errorMap.empty+'</label>');

}

isSubmit = false;

} else {

$(this).closest(".form-group").removeClass("has-error");

$(this).closest(".form-group").find("label.error").detach();

}

});

if(isSubmit){

$("#multipleShippingAddressForm").submit();

}

});

}

};

var defaultAddresss = function(){

var saveDefaultShippingAdressCheck = $("#saveDefaultShippingAdressCheck");

$('.form-group').on('click',saveDefaultShippingAdressCheck.parent().next(),function(){

if(saveDefaultShippingAdressCheck.attr('checked')){

saveDefaultShippingAdressCheck.val('true');

}else{

saveDefaultShippingAdressCheck.val('false');

}

});

if($('#defaultShippingGroupId').val() != undefined && $('#defaultShippingGroupId').val() != "" && $('#defaultShippingGroupId').val() == $("#sgAddressBookId").val()){

saveDefaultShippingAdressCheck.attr('checked',true).val('true').parent().next().addClass('checked');

}else{

saveDefaultShippingAdressCheck.attr('checked',false).val('false').parent().next().removeClass('checked');

}

}

/*

* Bind Event

* submit single shipping address form 

*/

$(".jq_shippingAddressSubmit").on("click", function(event){

event.preventDefault();

$("#createShippingAddressForm").submit();

});


/*

* Bind Event

* submit shipping method form 

*/

$(".jq_shippingMethodSubmit").on("click", function(event){

event.preventDefault();

$("#applyShippingMethodForm").submit();

});

/*

* Bind Event

* submit back to shipping address form

*/

$(".jq_backToShippingAddressFromMethod").on("click", function(event){

event.preventDefault();

$("#backToShippingAddressForm").submit();

});

/*

* Bind Event

* go to multiple shipping address form

*/

$(".jq_goToMultipleShippingAddressFrom").on("click", function(event){

event.preventDefault();

$("#shipToMultipleAddressForm").submit();

});

/*

* Bind Event

* go to single shipping address form

*/

$(".jq_goToSingleShippingAddressFrom").on("click", function(event){

event.preventDefault();

$("#shipToSingleAddressForm").submit();

});

/*

* Bind Event

* submit back to shipping address form

*/

$(".jq_backToCart").on("click", function(event){

event.preventDefault();

$("#backToCartFrom").submit();

});

MulipleShippingAdress.init();

    function contentKeyParser(key) {

        // because key is like xx.xx.xx so not use jquery

        var domKey = document.getElementById(key);

        var value = $(domKey).text() || "";

        return value;

    }

    

    /**

     * for highlight navigation bar

     */

    (function highlightNavigationBar() {

        var $cartridgeType = $(".jq_checkoutCartridgeType");

        var cartridgeType = $(".jq_checkoutCartridgeType").text();

        var navTab = $("." + "jq_" + cartridgeType);

        if (!navTab.hasClass("active")) {

            navTab.addClass("active");

        }

    })();

});


© 著作权归作者所有

共有 人打赏支持
攀爬的小瓜牛
粉丝 4
博文 112
码字总数 63322
作品 0
成都
程序员
前端知识 | 论jQuery如何编写插件

一. jQuery的插件机制 为了方便用户创建插件,jquery提供了jQuery.extend()和jQuery.fn.extend()方法 jQuery.extend(object) ,一个参数的用于扩展jQuery类本身,也就是用来在jQuery类/命名空...

海说软件
08/10
0
0
无中生有,如何编写一个最简单的jQuery插件.

首先是最基础的,大多数乃至99%的jQuery插件都会用到的代码介绍一下,一共就2条. 1. extend()函数,参数是一个Object,为一个对象做扩展,添加一些方法或者属性.比如: jQuery.extend({hello:func...

顽Shi
2014/01/08
0
2
jQuery剥皮三- data、proxy、event

jquery1.4 jquery1.4下载 这里使用了 jQuery1.4,为什么使用 1.4 因为 1.4 很多特性没有添加分析起来相对容易。 这个 data 的实现是扩展在 jQuery 静态函数里面的,我们平常这样( $('#data'...

开源中国最帅没有之一
2014/11/18
0
4
JavaScript 中的函数式编程实践

基础知识 函数式编程简介 说到函数式编程,人们的第一印象往往是其学院派,晦涩难懂,大概只有那些蓬头散发,不修边幅,甚至有些神经质的大学教授们才会用的编程方式。这可能在历史上的某个阶...

i33
2012/09/07
0
3
手把手教你怎么写jQuery插件

[原创作品]手把手教你怎么写jQuery插件   这次随笔,向大家介绍如何编写jQuery插件。啰嗦一下,很希望各位IT界的‘攻城狮’们能和大家一起分享,一起成长。点击左边我头像下边的“加入qq群...

什么是程序员
2015/07/08
0
2

没有更多内容

加载失败,请刷新页面

加载更多

发生系统错误 5 拒绝访问

1、使用命令net start *开启一个服务的时候,出现发生系统错误5,拒绝访问。 解决:切换到管理员模式执行此命令即可。

fang_faye
17分钟前
1
0
devops 成长路线

https://36kr.com/p/5157249.html

swingcoder
29分钟前
1
0
Java内存区域的划分和异常

行时数据区域 JVM在运行Java程序时候会将内存划分为若干个不同的数据区域。 程序计数器 线程私有。可看作是当前线程所执行的字节码的行号指示器,字节码解释器的工作是通过改变这个计数值来读...

架构师springboot
31分钟前
1
0
kubeadm 安装kubernetes1.12.1

准备环境 服务器 服务器情况: IP 系统版本 角色 Hostname 10.20.13.24 Centos7 64位 minimal master kuber24 10.20.13.25 Centos7 64位 minimal work Kuber25 10.20.13.26 Centos7 64位 mi......

hgfgoodcreate
34分钟前
4
0
腾讯又添 AI 开源项目! 腾讯 AI Lab 正式开源业内最大规模多标签图像数据集

2018年10月17日,腾讯AI Lab宣布正式开源“Tencent ML-Images”项目,地址为https://github.com/Tencent/tencent-ml-images。该项目由多标签图像数据集ML-Images,以及业内目前同类深度学习模...

腾讯开源
41分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部