javascript - 使用 jquery 在移动浏览器上点击重绘图表

标签 javascript jquery jquery-mobile mobile dc.js

我使用 dc.js 构建了两个图表 here 。对于标题中的第二个图表,您可以看到一个包含两个选项的下拉列表。选择任一选项后,图表将使用新数据重新绘制。在桌面上运行良好。然而,在移动设备上什么也没有发生。我使用以下方法:

HTML:

<div id='Line_chart_rate'>
      <strong>Daily Price of a Dollar in </strong>
      <select class = 'line-drop'>
        <option id = 'RUB'>Rubles</option>
        <option id = 'CAD'>Canadian Dollars</option>
      </select>    
</div>

JS:

// Events for the rate line chart dropdown menu
$('#CAD').on("click", function() {

    ... Update chart...

    return false;
})

$('#RUB').on("click", function() {

    ...Update Chart...

    return false;
    })

我四处寻找解决方案。在尝试了几种方法之后,包括不同的 hack 和 Jquery mobile 的变体、使用 html 标签引用 javascript 函数等,我无法使任何工作发挥作用。

据我了解,问题在于移动设备上没有鼠标单击事件,而是点击和滑动事件。因此,我正在寻找一种方法来注册/捕获鼠标单击事件,以便图表在移动设备上更新。这是完整的html filejs file如果您想查看代码。 jquery 单击函数位于 js 文件的底部。感谢您的帮助。

最佳答案

我完全忽略了您使用的处理程序的类型。如果您使用移动设备,单击某个选项不会触发其单击事件,看起来桌面浏览器也是如此。我设法使用现有代码更改图形的唯一方法是手动触发控制台中的单击事件,这意味着监听器已正确设置,但当您单击选项时浏览器不会触发该事件。尝试将 HTML 和 JavaScript 更改为以下内容。这两个片段应该适用于所有浏览器。

HTML:

<select class="line-drop">
    <option value="RUB">Rubles</option>
    <option value="CAD">Canadian Dollars</option>
</select>  

JavaScript:

$('.line-drop').on("change", function() {
    if (this.value == "RUB") {
        //Update chart to show Rubles
    } else if (this.value == "CAD"){
        //Update chart to show Canadian Dollars
    }
});

关于javascript - 使用 jquery 在移动浏览器上点击重绘图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30007354/

相关文章:

javascript - 如何在选择选项中使用复选框? react 钩子(Hook)

javascript - 如何在 Dojo Toolkit 中为带有按钮的工具栏定义 Widget 类?

javascript - 更新 firebase 数据库中嵌套数组的值

javascript - 访问 ko.compulated 内部的本地函数

javascript - $(document).on ("input",".SomeClass") 适用于 Chrome 但不适用于 IE

javascript - 我的应用程序框架的 js/jquery 代码有问题

javascript - 使用 jAlerts 动态更改按钮文本

html - JQuery Mobile 内容高度 :100%

javascript - jQuery Raty 为分数加注星标。移动版

jquery - 更改数据角色 ="header"中 .ui-title 的宽度