文档章节

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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

iOS开发用到的图片尺寸汇总

启动图 型号 竖屏 横屏 iPhone SE 640px × 1136px 1136px × 640px iPhone 6s 750px × 1334px 1334px × 750px iPhone 6s Plus 1242px × 2208px 2208px × 1242px iPhone 7 750px × 1334......

业界小白
18分钟前
0
0
浅谈redis

redis是一个开源,内存式的健值存储数据库,也被称为健值存储的字典服务器。健值类型有字符串,hash(哈希类型),set(集合),list(列表) 和有序集合 特征细节: 内存式:redis将健值存储在主...

拐美人
25分钟前
0
0
无限扩容,按需使用!ZStack推出基于阿里云NAS的文件存储服务

日前,ZStack发布2.6.0版本,正式宣布推出基于阿里云NAS的文件存储服务。得益于业界领先的阿里云分布式存储架构,融合NAS后的ZStack 2.6.0拥有高性能、高可靠、容量无限扩展、一键操作、按需...

ZStack社区版
28分钟前
1
0
崛起于Springboot2.X之Mongodb多数据源处理(35)

多数据源:4个mongodb库! 目录结构图: 1、添加pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId>......

木九天
33分钟前
0
0
如何获取显示器的EDID信息

Q1: 为什么要写这篇文章? A1:在最近的工作中遇到了不少问题,其中很多都是和EDID相关的。可以说,作为一家以“显示”为生的企业,我们时时刻刻在与EDID打交道。EDID这东西很简单,但是如果...

DB_Terrill
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部