模态弹出框内篮项未更新



我似乎搞不懂这个噩梦。所以我试图做一个篮子系统是包含在一个模态弹出框。当我让它保持原样(原始的篮子系统)时,效果很好。

当我把模态加入方程时,它就爆炸了。该列表将添加和合计,直到您尝试删除任何列表项。然后它删除了错误的金额,混淆了总数,这是一个大的…当你关闭模式窗口,并再次打开它,所有的项目回来从死!(Basket With Modal = BOOM)

我在这里错过了什么,为什么内容在模态内不能正确更新,但没有很好?

$(document).ready(function() {
  var Arrays = new Array();
  $('#wrap li').click(function() {
    var thisID = $(this).attr('id');
    var itemname = $(this).find('div .name').html();
    var itemprice = $(this).find('div .price').html();
    if (include(Arrays, thisID)) {
      var price = $('#each-' + thisID).children(".shopp-price").find('em').html();
      var quantity = $('#each-' + thisID).children(".shopp-quantity").html();
      quantity = parseInt(quantity) + parseInt(1);
      var total = parseInt(itemprice) * parseInt(quantity);
      $('#each-' + thisID).children(".shopp-price").find('em').html(total);
      $('#each-' + thisID).children(".shopp-quantity").html(quantity);
      var prev_charges = $('.cart-total span').html();
      var prev_quantity = $('.cart-quantity span').html();
      prev_charges = parseInt(prev_charges) - parseInt(price);
      prev_charges = parseInt(prev_charges) + parseInt(total);
      prev_quantity = parseInt(prev_quantity) + parseInt(1);
      $('.cart-total span').html(prev_charges);
      $('.cart-quantity span').html(prev_quantity);
      $('#total-hidden-charges').val(prev_charges);
      $('#total-hidden-quantity').val(prev_quantity);
    } else {
      Arrays.push(thisID);
      var prev_charges = $('.cart-total span').html();
      var prev_quantity = $('.cart-quantity span').html();
      prev_charges = parseInt(prev_charges) + parseInt(itemprice);
      prev_quantity = parseInt(prev_quantity) + parseInt(1);
      $('.cart-total span').html(prev_charges);
      $('.cart-quantity span').html(prev_quantity);
      $('#total-hidden-charges').val(prev_charges);
      $('#total-hidden-quantity').val(prev_quantity);
      $('#left_bar .cart-info').append('<div class="shopp" id="each-' + thisID + '"><div class="label">' + itemname + '</div><div class="shopp-price"> $<em>' + itemprice + '</em></div><span class="shopp-quantity">1</span><img src="remove.png" class="remove" /><br class="all" /></div>');
    }
  });
  $('.remove').livequery('click', function() {
    var deduct = $(this).parent().children(".shopp-price").find('em').html();
    var deduct2 = $(this).parent().children(".shopp-quantity").html();
    var prev_charges = $('.cart-total span').html();
    var prev_quantity = $('.cart-quantity span').html();
    var thisID = $(this).parent().attr('id').replace('each-', '');
    var pos = getpos(Arrays, thisID);
    Arrays.splice(pos, 1, "0")
    prev_charges = parseInt(prev_charges) - parseInt(deduct);
    prev_quantity = parseInt(prev_quantity) - parseInt(deduct2);
    $('.cart-total span').html(prev_charges);
    $('.cart-quantity span').html(prev_quantity);
    $('#total-hidden-charges').val(prev_charges);
    $('#total-hidden-quantity').val(prev_quantity);
    $(this).parent().remove();
  });
  $('#Submit').livequery('click', function() {
    var totalCharge = $('#total-hidden-charges').val();
    var totalQuantity = $('#total-hidden-quantity').val();
    $('#left_bar').html('Total Charges: $' + totalCharge + ' quantity: ' + totalQuantity);
    return false;
  });
});
function include(arr, obj) {
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] == obj) return true;
  }
}
function getpos(arr, obj) {
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] == obj) return i;
  }
}
//Basic.js
jQuery(function($) {
  // Load dialog on page load
  //$('#basic-modal-content').modal();
  // Load dialog on click
  $('#basic-modal .basic').click(function(e) {
    $('#basic-modal-content').modal();
    return false;
  });
});


//jquery.simplemodal.js
(function(b) {
  "function" === typeof define && define.amd ? define(["jquery"], b) : b(jQuery)
})(function(b) {
  var j = [],
    n = b(document),
    k = navigator.userAgent.toLowerCase(),
    l = b(window),
    g = [],
    o = null,
    p = /msie/.test(k) && !/opera/.test(k),
    q = /opera/.test(k),
    m, r;
  m = p && /msie 6./.test(k) && "object" !== typeof window.XMLHttpRequest;
  r = p && /msie 7.0/.test(k);
  b.modal = function(a, h) {
    return b.modal.impl.init(a, h)
  };
  b.modal.close = function() {
    b.modal.impl.close()
  };
  b.modal.focus = function(a) {
    b.modal.impl.focus(a)
  };
  b.modal.setContainerDimensions =
    function() {
      b.modal.impl.setContainerDimensions()
    };
  b.modal.setPosition = function() {
    b.modal.impl.setPosition()
  };
  b.modal.update = function(a, h) {
    b.modal.impl.update(a, h)
  };
  b.fn.modal = function(a) {
    return b.modal.impl.init(this, a)
  };
  b.modal.defaults = {
    appendTo: "body",
    focus: !0,
    opacity: 50,
    overlayId: "simplemodal-overlay",
    overlayCss: {},
    containerId: "simplemodal-container",
    containerCss: {},
    dataId: "simplemodal-data",
    dataCss: {},
    minHeight: null,
    minWidth: null,
    maxHeight: null,
    maxWidth: null,
    autoResize: !1,
    autoPosition: !0,
    zIndex: 1E3,
    close: !0,
    closeHTML: '<a class="modalCloseImg" title="Close"></a>',
    closeClass: "simplemodal-close",
    escClose: !0,
    overlayClose: !1,
    fixed: !0,
    position: null,
    persist: !1,
    modal: !0,
    onOpen: null,
    onShow: null,
    onClose: null
  };
  b.modal.impl = {
    d: {},
    init: function(a, h) {
      if (this.d.data) return !1;
      o = p && !b.support.boxModel;
      this.o = b.extend({}, b.modal.defaults, h);
      this.zIndex = this.o.zIndex;
      this.occb = !1;
      if ("object" === typeof a) {
        if (a = a instanceof b ? a : b(a), this.d.placeholder = !1, 0 < a.parent().parent().size() && (a.before(b("<span></span>").attr("id",
          "simplemodal-placeholder").css({
          display: "none"
        })), this.d.placeholder = !0, this.display = a.css("display"), !this.o.persist)) this.d.orig = a.clone(!0)
      } else if ("string" === typeof a || "number" === typeof a) a = b("<div></div>").html(a);
      else return alert("SimpleModal Error: Unsupported data type: " + typeof a), this;
      this.create(a);
      this.open();
      b.isFunction(this.o.onShow) && this.o.onShow.apply(this, [this.d]);
      return this
    },
    create: function(a) {
      this.getDimensions();
      if (this.o.modal && m) this.d.iframe = b('<iframe src="javascript:false;"></iframe>').css(b.extend(this.o.iframeCss, {
        display: "none",
        opacity: 0,
        position: "fixed",
        height: g[0],
        width: g[1],
        zIndex: this.o.zIndex,
        top: 0,
        left: 0
      })).appendTo(this.o.appendTo);
      this.d.overlay = b("<div></div>").attr("id", this.o.overlayId).addClass("simplemodal-overlay").css(b.extend(this.o.overlayCss, {
        display: "none",
        opacity: this.o.opacity / 100,
        height: this.o.modal ? j[0] : 0,
        width: this.o.modal ? j[1] : 0,
        position: "fixed",
        left: 0,
        top: 0,
        zIndex: this.o.zIndex + 1
      })).appendTo(this.o.appendTo);
      this.d.container = b("<div></div>").attr("id", this.o.containerId).addClass("simplemodal-container").css(b.extend({
        position: this.o.fixed ?
          "fixed" : "absolute"
      }, this.o.containerCss, {
        display: "none",
        zIndex: this.o.zIndex + 2
      })).append(this.o.close && this.o.closeHTML ? b(this.o.closeHTML).addClass(this.o.closeClass) : "").appendTo(this.o.appendTo);
      this.d.wrap = b("<div></div>").attr("tabIndex", -1).addClass("simplemodal-wrap").css({
        height: "100%",
        outline: 0,
        width: "100%"
      }).appendTo(this.d.container);
      this.d.data = a.attr("id", a.attr("id") || this.o.dataId).addClass("simplemodal-data").css(b.extend(this.o.dataCss, {
        display: "none"
      })).appendTo("body");
      this.setContainerDimensions();
      this.d.data.appendTo(this.d.wrap);
      (m || o) && this.fixIE()
    },
    bindEvents: function() {
      var a = this;
      b("." + a.o.closeClass).bind("click.simplemodal", function(b) {
        b.preventDefault();
        a.close()
      });
      a.o.modal && a.o.close && a.o.overlayClose && a.d.overlay.bind("click.simplemodal", function(b) {
        b.preventDefault();
        a.close()
      });
      n.bind("keydown.simplemodal", function(b) {
        a.o.modal && 9 === b.keyCode ? a.watchTab(b) : a.o.close && a.o.escClose && 27 === b.keyCode && (b.preventDefault(), a.close())
      });
      l.bind("resize.simplemodal orientationchange.simplemodal",
        function() {
          a.getDimensions();
          a.o.autoResize ? a.setContainerDimensions() : a.o.autoPosition && a.setPosition();
          m || o ? a.fixIE() : a.o.modal && (a.d.iframe && a.d.iframe.css({
            height: g[0],
            width: g[1]
          }), a.d.overlay.css({
            height: j[0],
            width: j[1]
          }))
        })
    },
    unbindEvents: function() {
      b("." + this.o.closeClass).unbind("click.simplemodal");
      n.unbind("keydown.simplemodal");
      l.unbind(".simplemodal");
      this.d.overlay.unbind("click.simplemodal")
    },
    fixIE: function() {
      var a = this.o.position;
      b.each([this.d.iframe || null, !this.o.modal ? null : this.d.overlay,
        "fixed" === this.d.container.css("position") ? this.d.container : null
      ], function(b, e) {
        if (e) {
          var f = e[0].style;
          f.position = "absolute";
          if (2 > b) f.removeExpression("height"), f.removeExpression("width"), f.setExpression("height", 'document.body.scrollHeight > document.body.clientHeight ? document.body.scrollHeight : document.body.clientHeight + "px"'), f.setExpression("width", 'document.body.scrollWidth > document.body.clientWidth ? document.body.scrollWidth : document.body.clientWidth + "px"');
          else {
            var c, d;
            a && a.constructor ===
              Array ? (c = a[0] ? "number" === typeof a[0] ? a[0].toString() : a[0].replace(/px/, "") : e.css("top").replace(/px/, ""), c = -1 === c.indexOf("%") ? c + ' + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"' : parseInt(c.replace(/%/, "")) + ' * ((document.documentElement.clientHeight || document.body.clientHeight) / 100) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"', a[1] && (d = "number" === typeof a[1] ?
                a[1].toString() : a[1].replace(/px/, ""), d = -1 === d.indexOf("%") ? d + ' + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"' : parseInt(d.replace(/%/, "")) + ' * ((document.documentElement.clientWidth || document.body.clientWidth) / 100) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"')) : (c = '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"',
                d = '(document.documentElement.clientWidth || document.body.clientWidth) / 2 - (this.offsetWidth / 2) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"');
            f.removeExpression("top");
            f.removeExpression("left");
            f.setExpression("top", c);
            f.setExpression("left", d)
          }
        }
      })
    },
    focus: function(a) {
      var h = this,
        a = a && -1 !== b.inArray(a, ["first", "last"]) ? a : "first",
        e = b(":input:enabled:visible:" + a, h.d.wrap);
      setTimeout(function() {
          0 < e.length ? e.focus() : h.d.wrap.focus()
        },
        10)
    },
    getDimensions: function() {
      var a = "undefined" === typeof window.innerHeight ? l.height() : window.innerHeight;
      j = [n.height(), n.width()];
      g = [a, l.width()]
    },
    getVal: function(a, b) {
      return a ? "number" === typeof a ? a : "auto" === a ? 0 : 0 < a.indexOf("%") ? parseInt(a.replace(/%/, "")) / 100 * ("h" === b ? g[0] : g[1]) : parseInt(a.replace(/px/, "")) : null
    },
    update: function(a, b) {
      if (!this.d.data) return !1;
      this.d.origHeight = this.getVal(a, "h");
      this.d.origWidth = this.getVal(b, "w");
      this.d.data.hide();
      a && this.d.container.css("height", a);
      b && this.d.container.css("width",
        b);
      this.setContainerDimensions();
      this.d.data.show();
      this.o.focus && this.focus();
      this.unbindEvents();
      this.bindEvents()
    },
    setContainerDimensions: function() {
      var a = m || r,
        b = this.d.origHeight ? this.d.origHeight : q ? this.d.container.height() : this.getVal(a ? this.d.container[0].currentStyle.height : this.d.container.css("height"), "h"),
        a = this.d.origWidth ? this.d.origWidth : q ? this.d.container.width() : this.getVal(a ? this.d.container[0].currentStyle.width : this.d.container.css("width"), "w"),
        e = this.d.data.outerHeight(!0),
        f =
        this.d.data.outerWidth(!0);
      this.d.origHeight = this.d.origHeight || b;
      this.d.origWidth = this.d.origWidth || a;
      var c = this.o.maxHeight ? this.getVal(this.o.maxHeight, "h") : null,
        d = this.o.maxWidth ? this.getVal(this.o.maxWidth, "w") : null,
        c = c && c < g[0] ? c : g[0],
        d = d && d < g[1] ? d : g[1],
        i = this.o.minHeight ? this.getVal(this.o.minHeight, "h") : "auto",
        b = b ? this.o.autoResize && b > c ? c : b < i ? i : b : e ? e > c ? c : this.o.minHeight && "auto" !== i && e < i ? i : e : i,
        c = this.o.minWidth ? this.getVal(this.o.minWidth, "w") : "auto",
        a = a ? this.o.autoResize && a > d ? d : a < c ? c : a : f ?
        f > d ? d : this.o.minWidth && "auto" !== c && f < c ? c : f : c;
      this.d.container.css({
        height: b,
        width: a
      });
      this.d.wrap.css({
        overflow: e > b || f > a ? "auto" : "visible"
      });
      this.o.autoPosition && this.setPosition()
    },
    setPosition: function() {
      var a, b;
      a = g[0] / 2 - this.d.container.outerHeight(!0) / 2;
      b = g[1] / 2 - this.d.container.outerWidth(!0) / 2;
      var e = "fixed" !== this.d.container.css("position") ? l.scrollTop() : 0;
      this.o.position && "[object Array]" === Object.prototype.toString.call(this.o.position) ? (a = e + (this.o.position[0] || a), b = this.o.position[1] || b) :
        a = e + a;
      this.d.container.css({
        left: b,
        top: a
      })
    },
    watchTab: function(a) {
      if (0 < b(a.target).parents(".simplemodal-container").length) {
        if (this.inputs = b(":input:enabled:visible:first, :input:enabled:visible:last", this.d.data[0]), !a.shiftKey && a.target === this.inputs[this.inputs.length - 1] || a.shiftKey && a.target === this.inputs[0] || 0 === this.inputs.length) a.preventDefault(), this.focus(a.shiftKey ? "last" : "first")
      } else a.preventDefault(), this.focus()
    },
    open: function() {
      this.d.iframe && this.d.iframe.show();
      b.isFunction(this.o.onOpen) ?
        this.o.onOpen.apply(this, [this.d]) : (this.d.overlay.show(), this.d.container.show(), this.d.data.show());
      this.o.focus && this.focus();
      this.bindEvents()
    },
    close: function() {
      if (!this.d.data) return !1;
      this.unbindEvents();
      if (b.isFunction(this.o.onClose) && !this.occb) this.occb = !0, this.o.onClose.apply(this, [this.d]);
      else {
        if (this.d.placeholder) {
          var a = b("#simplemodal-placeholder");
          this.o.persist ? a.replaceWith(this.d.data.removeClass("simplemodal-data").css("display", this.display)) : (this.d.data.hide().remove(), a.replaceWith(this.d.orig))
        } else this.d.data.hide().remove();
        this.d.container.hide().remove();
        this.d.overlay.hide();
        this.d.iframe && this.d.iframe.hide().remove();
        this.d.overlay.remove();
        this.d = {}
      }
    }
  }
});
#wrap ul li {
  border: 2px solid black;
  height: 50px;
  width: 100px;
  margin-left: 5px;
  overflow: hidden;
}
#wrap ul li div {
  text-align: center;
}
#wrap ul li {
  cursor: pointer;
}
#left_bar {
  height: 350px;
  width: 250px;
}
button {
  background: none repeat scroll 0 0 #AD7B05;
  color: #FFFFFF;
  border: medium none;
  margin-right: -14px;
  padding: 10px;
  cursor: pointer;
}
.shopp,
.cart-total {
  border: solid #ccc 1px;
  background: url(remove.png) center right no-repeat 5px;
  width: 260px;
}
div.shopp div.label {
  width: 130px;
  float: left;
}
div.shopp div.shopp-price {
  width: 70px;
  float: left;
}
#container {
  margin: 0 auto;
  padding-top: 20px;
  width: 800px;
}
#simplemodal-container {
  height: 360px;
  width: 600px;
  color: #bbb;
  background-color: #333;
  border: 4px solid #444;
  padding: 12px;
}
#simplemodal-container .simplemodal-data {
  padding: 8px;
}
#simplemodal-container code {
  background: #141414;
  border-left: 3px solid #65B43D;
  color: #bbb;
  display: block;
  font-size: 12px;
  margin-bottom: 12px;
  padding: 4px 6px 6px;
}
#simplemodal-container a {
  color: #ddd;
}
#simplemodal-container a.modalCloseImg {
  background: url(../light/img/basic/x.png) no-repeat;
  width: 25px;
  border: solid #ccc 1px;
  height: 29px;
  display: inline;
  z-index: 3200;
  position: absolute;
  top: -15px;
  right: -16px;
  cursor: pointer;
}
#simplemodal-container h3 {
  color: #84b8d9;
}
#basic-modal-content {
  display: none;
}
#simplemodal-overlay {
  background-color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://www.sethcraft.com/elle/include/jquery.livequery.js"></script>
<div>
  <div id="wrap" align="left">
    <ul>
      <li id="1">
        <br clear="all" />
        <div><span class="name">Ace</span>: $<span class="price">800</span> 
        </div>
      </li>
      <li id="2">
        <br clear="all" />
        <div><span class="name">Bat</span>: $<span class="price">500 </span>
        </div>
      </li>
      <li id="3">
        <br clear="all" />
        <div><span class="name">Cat</span>: $<span class="price">450</span>
        </div>
      </li>
    </ul>
    <br clear="all" />
  </div>
</div>
<div id='container'>
  <div id='content'>
    <div id='basic-modal'>
      <input type='button' name='basic' value='Basket' class='basic' />
    </div>
    <!-- modal content -->
    <div id="basic-modal-content">
      <div id="left_bar">
        <form action="#">
          <div class="cart-info"></div>
          <div class="cart-total">
            <b>Total Charges:</b> $<span>0</span>
            <input type="hidden" name="total-hidden-charges" id="total-hidden-charges" value="0" />
          </div>
          <div class="cart-quantity">
            <b>Total quantity:</b> #<span>0</span>
            <input type="hidden" name="total-hidden-quantity" id="total-hidden-quantity" value="0" />
          </div>
          <button type="submit" id="Submit">CheckOut</button>
        </form>
      </div>
    </div>
    <!-- preload the images -->
    <div style='display:none'>
      <img src='../light/img/basic/x.png' alt='' />
    </div>
  </div>
</div>

问题是你的模态插件使用的一个选项:simplemodal。它是持久化选项:

persist [Boolean:false]在模态调用中持久化数据?只使用查找现有的DOM元素。如果为true,则数据将被交叉维护Modal调用,如果为false,则数据将恢复到原始状态状态。

将其设置为1将导致您的弹出窗口持久化并保留数据。当你在jQuery中使用插件时,最好总是阅读所有的选项,看看它是默认的,什么是可配置的,以防止像这样的奇怪的惊喜。

$('#basic-modal-content').modal({
      persist: 1
});

$(document).ready(function() {
  var Arrays = new Array();
  $('#wrap li').click(function() {
    var thisID = $(this).attr('id');
    var itemname = $(this).find('div .name').html();
    var itemprice = $(this).find('div .price').html();
    if (include(Arrays, thisID)) {
      var price = $('#each-' + thisID).children(".shopp-price").find('em').html();
      var quantity = $('#each-' + thisID).children(".shopp-quantity").html();
      quantity = parseInt(quantity) + parseInt(1);
      var total = parseInt(itemprice) * parseInt(quantity);
      $('#each-' + thisID).children(".shopp-price").find('em').html(total);
      $('#each-' + thisID).children(".shopp-quantity").html(quantity);
      var prev_charges = $('.cart-total span').html();
      var prev_quantity = $('.cart-quantity span').html();
      prev_charges = parseInt(prev_charges) - parseInt(price);
      prev_charges = parseInt(prev_charges) + parseInt(total);
      prev_quantity = parseInt(prev_quantity) + parseInt(1);
      $('.cart-total span').html(prev_charges);
      $('.cart-quantity span').html(prev_quantity);
      $('#total-hidden-charges').val(prev_charges);
      $('#total-hidden-quantity').val(prev_quantity);
    } else {
      Arrays.push(thisID);
      var prev_charges = $('.cart-total span').html();
      var prev_quantity = $('.cart-quantity span').html();
      prev_charges = parseInt(prev_charges) + parseInt(itemprice);
      prev_quantity = parseInt(prev_quantity) + parseInt(1);
      $('.cart-total span').html(prev_charges);
      $('.cart-quantity span').html(prev_quantity);
      $('#total-hidden-charges').val(prev_charges);
      $('#total-hidden-quantity').val(prev_quantity);
      $('#left_bar .cart-info').append('<div class="shopp" id="each-' + thisID + '"><div class="label">' + itemname + '</div><div class="shopp-price"> $<em>' + itemprice + '</em></div><span class="shopp-quantity">1</span><img src="remove.png" class="remove" /><br class="all" /></div>');
    }
  });
  $('.remove').livequery('click', function() {
    var deduct = $(this).parent().children(".shopp-price").find('em').html();
    var deduct2 = $(this).parent().children(".shopp-quantity").html();
    var prev_charges = $('.cart-total span').html();
    var prev_quantity = $('.cart-quantity span').html();
    var thisID = $(this).parent().attr('id').replace('each-', '');
    var pos = getpos(Arrays, thisID);
    Arrays.splice(pos, 1, "0")
    prev_charges = parseInt(prev_charges) - parseInt(deduct);
    prev_quantity = parseInt(prev_quantity) - parseInt(deduct2);
    $('.cart-total span').html(prev_charges);
    $('.cart-quantity span').html(prev_quantity);
    $('#total-hidden-charges').val(prev_charges);
    $('#total-hidden-quantity').val(prev_quantity);
    $(this).parent().remove();
  });
  $('#Submit').livequery('click', function() {
    var totalCharge = $('#total-hidden-charges').val();
    var totalQuantity = $('#total-hidden-quantity').val();
    $('#left_bar').html('Total Charges: $' + totalCharge + ' quantity: ' + totalQuantity);
    return false;
  });
});
function include(arr, obj) {
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] == obj) return true;
  }
}
function getpos(arr, obj) {
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] == obj) return i;
  }
}
//Basic.js
jQuery(function($) {
  // Load dialog on page load
  //$('#basic-modal-content').modal();
  // Load dialog on click
  $('#basic-modal .basic').click(function(e) {
    $('#basic-modal-content').modal({
      persist: 1
    });
    return false;
  });
});


//jquery.simplemodal.js
(function(b) {
  "function" === typeof define && define.amd ? define(["jquery"], b) : b(jQuery)
})(function(b) {
  var j = [],
    n = b(document),
    k = navigator.userAgent.toLowerCase(),
    l = b(window),
    g = [],
    o = null,
    p = /msie/.test(k) && !/opera/.test(k),
    q = /opera/.test(k),
    m, r;
  m = p && /msie 6./.test(k) && "object" !== typeof window.XMLHttpRequest;
  r = p && /msie 7.0/.test(k);
  b.modal = function(a, h) {
    return b.modal.impl.init(a, h)
  };
  b.modal.close = function() {
    b.modal.impl.close()
  };
  b.modal.focus = function(a) {
    b.modal.impl.focus(a)
  };
  b.modal.setContainerDimensions =
    function() {
      b.modal.impl.setContainerDimensions()
    };
  b.modal.setPosition = function() {
    b.modal.impl.setPosition()
  };
  b.modal.update = function(a, h) {
    b.modal.impl.update(a, h)
  };
  b.fn.modal = function(a) {
    return b.modal.impl.init(this, a)
  };
  b.modal.defaults = {
    appendTo: "body",
    focus: !0,
    opacity: 50,
    overlayId: "simplemodal-overlay",
    overlayCss: {},
    containerId: "simplemodal-container",
    containerCss: {},
    dataId: "simplemodal-data",
    dataCss: {},
    minHeight: null,
    minWidth: null,
    maxHeight: null,
    maxWidth: null,
    autoResize: !1,
    autoPosition: !0,
    zIndex: 1E3,
    close: !0,
    closeHTML: '<a class="modalCloseImg" title="Close"></a>',
    closeClass: "simplemodal-close",
    escClose: !0,
    overlayClose: !1,
    fixed: !0,
    position: null,
    persist: !0,
    modal: !0,
    onOpen: null,
    onShow: null,
    onClose: null
  };
  b.modal.impl = {
    d: {},
    init: function(a, h) {
      if (this.d.data) return !1;
      o = p && !b.support.boxModel;
      this.o = b.extend({}, b.modal.defaults, h);
      this.zIndex = this.o.zIndex;
      this.occb = !1;
      if ("object" === typeof a) {
        if (a = a instanceof b ? a : b(a), this.d.placeholder = !1, 0 < a.parent().parent().size() && (a.before(b("<span></span>").attr("id",
          "simplemodal-placeholder").css({
          display: "none"
        })), this.d.placeholder = !0, this.display = a.css("display"), !this.o.persist)) this.d.orig = a.clone(!0)
      } else if ("string" === typeof a || "number" === typeof a) a = b("<div></div>").html(a);
      else return alert("SimpleModal Error: Unsupported data type: " + typeof a), this;
      this.create(a);
      this.open();
      b.isFunction(this.o.onShow) && this.o.onShow.apply(this, [this.d]);
      return this
    },
    create: function(a) {
      this.getDimensions();
      if (this.o.modal && m) this.d.iframe = b('<iframe src="javascript:false;"></iframe>').css(b.extend(this.o.iframeCss, {
        display: "none",
        opacity: 0,
        position: "fixed",
        height: g[0],
        width: g[1],
        zIndex: this.o.zIndex,
        top: 0,
        left: 0
      })).appendTo(this.o.appendTo);
      this.d.overlay = b("<div></div>").attr("id", this.o.overlayId).addClass("simplemodal-overlay").css(b.extend(this.o.overlayCss, {
        display: "none",
        opacity: this.o.opacity / 100,
        height: this.o.modal ? j[0] : 0,
        width: this.o.modal ? j[1] : 0,
        position: "fixed",
        left: 0,
        top: 0,
        zIndex: this.o.zIndex + 1
      })).appendTo(this.o.appendTo);
      this.d.container = b("<div></div>").attr("id", this.o.containerId).addClass("simplemodal-container").css(b.extend({
        position: this.o.fixed ?
          "fixed" : "absolute"
      }, this.o.containerCss, {
        display: "none",
        zIndex: this.o.zIndex + 2
      })).append(this.o.close && this.o.closeHTML ? b(this.o.closeHTML).addClass(this.o.closeClass) : "").appendTo(this.o.appendTo);
      this.d.wrap = b("<div></div>").attr("tabIndex", -1).addClass("simplemodal-wrap").css({
        height: "100%",
        outline: 0,
        width: "100%"
      }).appendTo(this.d.container);
      this.d.data = a.attr("id", a.attr("id") || this.o.dataId).addClass("simplemodal-data").css(b.extend(this.o.dataCss, {
        display: "none"
      })).appendTo("body");
      this.setContainerDimensions();
      this.d.data.appendTo(this.d.wrap);
      (m || o) && this.fixIE()
    },
    bindEvents: function() {
      var a = this;
      b("." + a.o.closeClass).bind("click.simplemodal", function(b) {
        b.preventDefault();
        a.close()
      });
      a.o.modal && a.o.close && a.o.overlayClose && a.d.overlay.bind("click.simplemodal", function(b) {
        b.preventDefault();
        a.close()
      });
      n.bind("keydown.simplemodal", function(b) {
        a.o.modal && 9 === b.keyCode ? a.watchTab(b) : a.o.close && a.o.escClose && 27 === b.keyCode && (b.preventDefault(), a.close())
      });
      l.bind("resize.simplemodal orientationchange.simplemodal",
        function() {
          a.getDimensions();
          a.o.autoResize ? a.setContainerDimensions() : a.o.autoPosition && a.setPosition();
          m || o ? a.fixIE() : a.o.modal && (a.d.iframe && a.d.iframe.css({
            height: g[0],
            width: g[1]
          }), a.d.overlay.css({
            height: j[0],
            width: j[1]
          }))
        })
    },
    unbindEvents: function() {
      b("." + this.o.closeClass).unbind("click.simplemodal");
      n.unbind("keydown.simplemodal");
      l.unbind(".simplemodal");
      this.d.overlay.unbind("click.simplemodal")
    },
    fixIE: function() {
      var a = this.o.position;
      b.each([this.d.iframe || null, !this.o.modal ? null : this.d.overlay,
        "fixed" === this.d.container.css("position") ? this.d.container : null
      ], function(b, e) {
        if (e) {
          var f = e[0].style;
          f.position = "absolute";
          if (2 > b) f.removeExpression("height"), f.removeExpression("width"), f.setExpression("height", 'document.body.scrollHeight > document.body.clientHeight ? document.body.scrollHeight : document.body.clientHeight + "px"'), f.setExpression("width", 'document.body.scrollWidth > document.body.clientWidth ? document.body.scrollWidth : document.body.clientWidth + "px"');
          else {
            var c, d;
            a && a.constructor ===
              Array ? (c = a[0] ? "number" === typeof a[0] ? a[0].toString() : a[0].replace(/px/, "") : e.css("top").replace(/px/, ""), c = -1 === c.indexOf("%") ? c + ' + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"' : parseInt(c.replace(/%/, "")) + ' * ((document.documentElement.clientHeight || document.body.clientHeight) / 100) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"', a[1] && (d = "number" === typeof a[1] ?
                a[1].toString() : a[1].replace(/px/, ""), d = -1 === d.indexOf("%") ? d + ' + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"' : parseInt(d.replace(/%/, "")) + ' * ((document.documentElement.clientWidth || document.body.clientWidth) / 100) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"')) : (c = '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (t = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"',
                d = '(document.documentElement.clientWidth || document.body.clientWidth) / 2 - (this.offsetWidth / 2) + (t = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft) + "px"');
            f.removeExpression("top");
            f.removeExpression("left");
            f.setExpression("top", c);
            f.setExpression("left", d)
          }
        }
      })
    },
    focus: function(a) {
      var h = this,
        a = a && -1 !== b.inArray(a, ["first", "last"]) ? a : "first",
        e = b(":input:enabled:visible:" + a, h.d.wrap);
      setTimeout(function() {
          0 < e.length ? e.focus() : h.d.wrap.focus()
        },
        10)
    },
    getDimensions: function() {
      var a = "undefined" === typeof window.innerHeight ? l.height() : window.innerHeight;
      j = [n.height(), n.width()];
      g = [a, l.width()]
    },
    getVal: function(a, b) {
      return a ? "number" === typeof a ? a : "auto" === a ? 0 : 0 < a.indexOf("%") ? parseInt(a.replace(/%/, "")) / 100 * ("h" === b ? g[0] : g[1]) : parseInt(a.replace(/px/, "")) : null
    },
    update: function(a, b) {
      if (!this.d.data) return !1;
      this.d.origHeight = this.getVal(a, "h");
      this.d.origWidth = this.getVal(b, "w");
      this.d.data.hide();
      a && this.d.container.css("height", a);
      b && this.d.container.css("width",
        b);
      this.setContainerDimensions();
      this.d.data.show();
      this.o.focus && this.focus();
      this.unbindEvents();
      this.bindEvents()
    },
    setContainerDimensions: function() {
      var a = m || r,
        b = this.d.origHeight ? this.d.origHeight : q ? this.d.container.height() : this.getVal(a ? this.d.container[0].currentStyle.height : this.d.container.css("height"), "h"),
        a = this.d.origWidth ? this.d.origWidth : q ? this.d.container.width() : this.getVal(a ? this.d.container[0].currentStyle.width : this.d.container.css("width"), "w"),
        e = this.d.data.outerHeight(!0),
        f =
        this.d.data.outerWidth(!0);
      this.d.origHeight = this.d.origHeight || b;
      this.d.origWidth = this.d.origWidth || a;
      var c = this.o.maxHeight ? this.getVal(this.o.maxHeight, "h") : null,
        d = this.o.maxWidth ? this.getVal(this.o.maxWidth, "w") : null,
        c = c && c < g[0] ? c : g[0],
        d = d && d < g[1] ? d : g[1],
        i = this.o.minHeight ? this.getVal(this.o.minHeight, "h") : "auto",
        b = b ? this.o.autoResize && b > c ? c : b < i ? i : b : e ? e > c ? c : this.o.minHeight && "auto" !== i && e < i ? i : e : i,
        c = this.o.minWidth ? this.getVal(this.o.minWidth, "w") : "auto",
        a = a ? this.o.autoResize && a > d ? d : a < c ? c : a : f ?
        f > d ? d : this.o.minWidth && "auto" !== c && f < c ? c : f : c;
      this.d.container.css({
        height: b,
        width: a
      });
      this.d.wrap.css({
        overflow: e > b || f > a ? "auto" : "visible"
      });
      this.o.autoPosition && this.setPosition()
    },
    setPosition: function() {
      var a, b;
      a = g[0] / 2 - this.d.container.outerHeight(!0) / 2;
      b = g[1] / 2 - this.d.container.outerWidth(!0) / 2;
      var e = "fixed" !== this.d.container.css("position") ? l.scrollTop() : 0;
      this.o.position && "[object Array]" === Object.prototype.toString.call(this.o.position) ? (a = e + (this.o.position[0] || a), b = this.o.position[1] || b) :
        a = e + a;
      this.d.container.css({
        left: b,
        top: a
      })
    },
    watchTab: function(a) {
      if (0 < b(a.target).parents(".simplemodal-container").length) {
        if (this.inputs = b(":input:enabled:visible:first, :input:enabled:visible:last", this.d.data[0]), !a.shiftKey && a.target === this.inputs[this.inputs.length - 1] || a.shiftKey && a.target === this.inputs[0] || 0 === this.inputs.length) a.preventDefault(), this.focus(a.shiftKey ? "last" : "first")
      } else a.preventDefault(), this.focus()
    },
    open: function() {
      this.d.iframe && this.d.iframe.show();
      b.isFunction(this.o.onOpen) ?
        this.o.onOpen.apply(this, [this.d]) : (this.d.overlay.show(), this.d.container.show(), this.d.data.show());
      this.o.focus && this.focus();
      this.bindEvents()
    },
    close: function() {
      if (!this.d.data) return !1;
      this.unbindEvents();
      if (b.isFunction(this.o.onClose) && !this.occb) this.occb = !0, this.o.onClose.apply(this, [this.d]);
      else {
        if (this.d.placeholder) {
          var a = b("#simplemodal-placeholder");
          this.o.persist ? a.replaceWith(this.d.data.removeClass("simplemodal-data").css("display", this.display)) : (this.d.data.hide().remove(), a.replaceWith(this.d.orig))
        } else this.d.data.hide().remove();
        this.d.container.hide().remove();
        this.d.overlay.hide();
        this.d.iframe && this.d.iframe.hide().remove();
        this.d.overlay.remove();
        this.d = {}
      }
    }
  }
});
#wrap ul li {
  border: 2px solid black;
  height: 50px;
  width: 100px;
  margin-left: 5px;
  overflow: hidden;
}
#wrap ul li div {
  text-align: center;
}
#wrap ul li {
  cursor: pointer;
}
#left_bar {
  height: 350px;
  width: 250px;
}
button {
  background: none repeat scroll 0 0 #AD7B05;
  color: #FFFFFF;
  border: medium none;
  margin-right: -14px;
  padding: 10px;
  cursor: pointer;
}
.shopp,
.cart-total {
  border: solid #ccc 1px;
  background: url(remove.png) center right no-repeat 5px;
  width: 260px;
}
div.shopp div.label {
  width: 130px;
  float: left;
}
div.shopp div.shopp-price {
  width: 70px;
  float: left;
}
#container {
  margin: 0 auto;
  padding-top: 20px;
  width: 800px;
}
#simplemodal-container {
  height: 360px;
  width: 600px;
  color: #bbb;
  background-color: #333;
  border: 4px solid #444;
  padding: 12px;
}
#simplemodal-container .simplemodal-data {
  padding: 8px;
}
#simplemodal-container code {
  background: #141414;
  border-left: 3px solid #65B43D;
  color: #bbb;
  display: block;
  font-size: 12px;
  margin-bottom: 12px;
  padding: 4px 6px 6px;
}
#simplemodal-container a {
  color: #ddd;
}
#simplemodal-container a.modalCloseImg {
  background: url(../light/img/basic/x.png) no-repeat;
  width: 25px;
  border: solid #ccc 1px;
  height: 29px;
  display: inline;
  z-index: 3200;
  position: absolute;
  top: -15px;
  right: -16px;
  cursor: pointer;
}
#simplemodal-container h3 {
  color: #84b8d9;
}
#basic-modal-content {
  display: none;
}
#simplemodal-overlay {
  background-color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://www.sethcraft.com/elle/include/jquery.livequery.js"></script>
<div>
  <div id="wrap" align="left">
    <ul>
      <li id="1">
        <br clear="all" />
        <div><span class="name">Ace</span>: $<span class="price">800</span> 
        </div>
      </li>
      <li id="2">
        <br clear="all" />
        <div><span class="name">Bat</span>: $<span class="price">500 </span>
        </div>
      </li>
      <li id="3">
        <br clear="all" />
        <div><span class="name">Cat</span>: $<span class="price">450</span>
        </div>
      </li>
    </ul>
    <br clear="all" />
  </div>
</div>
<div id='container'>
  <div id='content'>
    <div id='basic-modal'>
      <input type='button' name='basic' value='Basket' class='basic' />
    </div>
    <!-- modal content -->
    <div id="basic-modal-content">
      <div id="left_bar">
        <form action="#">
          <div class="cart-info"></div>
          <div class="cart-total">
            <b>Total Charges:</b> $<span>0</span>
            <input type="hidden" name="total-hidden-charges" id="total-hidden-charges" value="0" />
          </div>
          <div class="cart-quantity">
            <b>Total quantity:</b> #<span>0</span>
            <input type="hidden" name="total-hidden-quantity" id="total-hidden-quantity" value="0" />
          </div>
          <button type="submit" id="Submit">CheckOut</button>
        </form>
      </div>
    </div>
    <!-- preload the images -->
    <div style='display:none'>
      <img src='../light/img/basic/x.png' alt='' />
    </div>
  </div>
</div>

相关内容

  • 没有找到相关文章

最新更新