JQuery引用错误(特定于Safari)

时间:2015-09-16 10:15:19

标签: javascript jquery jquery-mobile safari

我的代码似乎适用于PC Express / Chrome / IE但是当涉及到Firefox时,我收到了错误(请参阅下文)。我正在使用Safari

我试图在选择后添加选择选项的值并创建总计。总数将随着变化而变化。我知道这似乎是在创建Safari 8.0.8然后尝试使用global var访问它时,但我似乎无法让它工作。

该解决方案必须在移动设备上运行,因为它正在为移动设备构建,但也无法在iPhone上运行。我使用的是safariJQuery

还有另一种解决方法吗?我可以简化JQuery Mobile(有30种选择可供选择,我需要这个JQuery还有更多smaller)?

错误

efficient

ReferenceError: Can't find variable: previous
$('#select-choice-timely').on('click', function () {
    previous = this.value;
}).change(function () {
    var a = $('#fr-total').html();
    var ab = parseInt(a, 10) - parseInt(previous, 10);
    var b = $(this).val();
    var c = parseInt(ab, 10) + parseInt(b, 10);
    $('#fr-total').html(c);
});

链接

Codepen

1 个答案:

答案 0 :(得分:1)

在Safari中似乎changeclick之前触发,因此previous中的change未定义 - 回调。

另一种方法:

$("#select-choice-timely").change(function() {

  var a = $("#fr-total").html();
  var ab = parseInt(a, 10) - parseInt($(this).prop('previous'), 10);
  var b = $(this).val();
  var c = parseInt(ab, 10) + parseInt(b, 10);

  $("#fr-total").html(c);
  $(this).prop('previous',this.value)
}).prop('previous',function(){return this.value});