javascript - AJAX 调用 - 每次点击闪烁更多
问题描述
我正在构建一个图表(在 Yii2 框架中),可以显示每个时期的不同报告,如果用户单击带有 7D-1M-1Y 的按钮组,我需要更新图表。
更新工作,但每次我通过单击按钮更改查看周期时,显示右侧图表之前的闪烁时间会变高。
这是我的 JS:
if(!$('#7D').hasClass('active') && !$('#1M').hasClass('active') && !$('#1Y').hasClass('active')) { $('#1M').addClass('active'); }
$('#7D').click(function() {
var myValue = "7D";
$.get("",{val:myValue},function(data){
$('.btn').removeClass('active');
$('#7D').addClass('active');
$('#w2').fadeOut('fast', function(){
$('#w2').html(data).fadeIn('fast');
});
});
});
$('#1M').click(function() {
var myValue = "1M";
$.get("",{val:myValue},function(data){
$('.btn').removeClass('active');
$('#1M').addClass('active');
$('#w2').fadeOut('fast', function(){
$('#w2').html(data).fadeIn('fast');
});
});
});
$('#1Y').click(function() {
var myValue = "1Y";
$.get("",{val:myValue},function(data){
$('.btn').removeClass('active');
$('#1Y').addClass('active');
$('#w2').fadeOut('fast', function(){
$('#w2').html(data).fadeIn('fast');
});
});
});
这是我的按钮组:
<?= ButtonGroup::widget([
'buttons' => [
['label' => '7D', 'id' => '7D'],
['label' => '1M', 'id' => '1M'],
['label' => '1Y', 'id' => '1Y'],
],
]); ?>
提示:我尝试使用body而不是#w2(图表的id),它可以正常工作而不会增加闪烁时间,但垂直闪烁一次,当图表消失时页面转到顶部然后返回新底部。
解决这个也有帮助,我只需要一个解决方案,如何解决并不重要
解决方案
根据您的问题,我认为您的点击事件已多次附加到您的元素。为避免多次附加它们,您可以使用
$("#SomeId").off("click").on("click", function({
// Your logic here.
}));
尽管问题上的问题尚不清楚。
推荐阅读
- c# - SQL Server UDT 和存储过程从 .Net 代码中修剪十进制数字值
- docker - Docker ps 显示我无法停止或杀死的正在运行的容器。如何停止/杀死该容器?
- javascript - 后端(java)和前端(jsp / js)之间的集成
- c# - 从应用程序洞察(Azure 门户)获取数据以将其显示在 asp.net Web 应用程序的网页上
- konvajs - Konvajs:如果它等于 fontSize,则文本高度不会出现在 stage.toJSON() 中
- web - 如何回答这个关于软件工程师的面试问题
- c# - 为什么用数字设置为 Int32 初始化 var
- android - 服务器错误响应上的 RxJava+Retrofit+Gson JsonSyntaxException
- reactjs - 如何在本机反应中通过id显示来自api的数据
- mysql - MySQL 查询失败:表 'opencats.module_schema' 不存在