文档章节

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");

        }

    })();

});


© 著作权归作者所有

共有 人打赏支持
上一篇: Jquery 闭包形式
下一篇: jquery 插件闭包
攀爬的小瓜牛
粉丝 5
博文 112
码字总数 63322
作品 0
成都
程序员
私信 提问
前端知识 | 论jQuery如何编写插件

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

海说软件
2018/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

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(11.9)hive操作基础知识

上一篇博客分享了hive的简介和初体验,本节博主将继续分享一些hive的操作的基础知识。 DDL操作 (1)创建表 #建表语法CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name ...

em_aaron
今天
2
0
OSChina 周四乱弹 —— 我家猫真会后空翻

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听这个# 我艇牛逼,百听不厌,太好听辣 分享 Led Zeppelin 的歌曲《Stairway To Heaven》 《Stairway To Heaven》- Led Z...

小小编辑
今天
3
0
node调用dll

先安装python2.7 安装node-gyp cnpm install node-gyp -g 新建一个Electron-vue项目(案例用Electron-vue) vue init simulatedgreg/electron-vue my-project 安装electron-rebuild cnpm ins......

Chason-洪
今天
3
0
scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
3
0
通俗易懂解释网络工程中的技术,如STP,HSRP等

导读 在面试时,比如被问到HSRP的主备切换时间时多久,STP几个状态的停留时间,自己知道有这些东西,但在工作中不会经常用到,就老是记不住,觉得可能还是自己基础不够牢固,知识掌握不够全面...

问题终结者
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部