座席图插件上的Javascript和jQuery冲突

时间:2017-03-07 08:23:09

标签: javascript jquery

我在我的网站上使用jQuery Seat Chart Plugin

这是一个旧网站所以它使用JavaScript但这个插件是在jQuery中所以我在以下jQuery代码上收到错误

function recalculateTotal(sc) {
    var total = 0;

    //basically find every selected seat and sum its price
    sc.find('selected').each(function () {
        total += this.data().price;
    });

    return total;
}

我得到的控制台中的错误是Uncaught TypeError: this.data is not a function我猜测与JavaScript和jQuery的冲突错误。

当我使用以下代码

sc.find('selected').each(function () {
        total += jQuery(this).data().price;
    });

使用'prototype'javascript抛出以下错误Uncaught TypeError: this._each is not a function

我试图创建一个新的扩展函数,试图更改javascript版本,但我无法解决错误。

1 个答案:

答案 0 :(得分:3)

jQuery是一个Javascript库,它不是一个不同的语言,因此没有冲突。

我发现您正在使用jQuery&{39} sc.find('selected'),因此问题必须存在:

  1. find('selected')将选择带有selected html标记的元素,我怀疑这是你想要的。如果您正在选择该类别的元素,则应使用.selected。或#selected如果您有1个元素,表示id。更多关于.each()
  2. 如果您尝试从jQuery选中的元素selected获取.find(),那么您应该这样做this.data("price") 如果您尝试获取seatCharts data(),请确保在.seatCharts({})元素上使用sc,否则您将无法获得data()在那里运作