javascript - 单击 div 中除超链接之外的所有元素时如何切换 div 的显示?

标签 javascript plotly-dash

每当我单击“.summary”div 时,我都会使用下面的 javascript 来切换“.detail”的显示。我希望在“.summary”div 中引入一个链接,但我不想在单击该链接时切换“.detail”div。我应该如何修复代码?

$(document).ready(function(){
    $(document).on("click",".summary",function(){
        $(this).next(".detail").toggleClass("show")
    })
});

上一条:

html.Div([
    html.Div([html.H5(corner, style={'paddingLeft':'25px', 'color':'#fff'})], className='three columns summary'),
    html.Div([html.H5(int_status, style={'paddingLeft':'25px', 'color':'#fff'})], className='three columns'),
    html.Div([html.H5(ext_status, style={'paddingLeft':'25px', 'color':'#fff'})], className='three columns'),
], className='row summary'),

html.Div([
    html.Div([dcc.Graph(id=f'binning-{corner}', figure=create_timing_graphs(partition, corner), 
        config={'displayModeBar':False})], 
        style={'paddingLeft':'40px'})
], style={**card_colors['default']}, className='row detail'),

新:

html.Div([
    html.Div([html.H5(corner, style={'paddingLeft':'25px', 'color':'#fff'})], className='three columns summary'),
    html.Div([html.H5(int_status, style={'paddingLeft':'25px', 'color':'#fff'})], className='three columns'),
    html.Div([html.H5(ext_status, style={'paddingLeft':'25px', 'color':'#fff'})], className='three columns'),
    html.Div(html.A(children='\u2630', style={'paddingLeft':'60px', 'color':'#fff'}, href=f'http://10.38.234.26:5000/{partition}_timing_summary.xlsx'), style={'marginTop':'5px'}, className='one column offset-by-two')
], className='row'),

html.Div([
    html.Div([dcc.Graph(id=f'binning-{corner}', figure=create_timing_graphs(partition, corner), 
        config={'displayModeBar':False})], 
        style={'paddingLeft':'40px'})
], style={**card_colors['default']}, className='row detail'),

最佳答案

您可以检查目标元素

$(document).on('click', '.summary', function(e){
  var target = e.target;

  if(target.tagName !== 'A'){
    $(this).next('.detail').toggleClass('show');
  }
});

关于javascript - 单击 div 中除超链接之外的所有元素时如何切换 div 的显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51406688/

相关文章:

javascript - Rails - jQuery 和 javascript 之间的冲突

javascript - 单击按钮时如何在自动完成文本框中填充数据?

python - 组合 Flask、Bootstrap 和 Dash 应用程序

python - Plotly Dash API 文档

javascript - ._ 在 javascript 中是什么?

javascript - 使用 Facebook 相册图 API 在照片弹出窗口中需要标题

javascript - 如何使用javascript的reduce方法使数组唯一

python - Plotly 中的一个图有两个或三个颜色条

python - 在 Dash-plotly 中将背景图像添加到 html.div

Python - Dash 从 Excel 文件创建堆积条形图