javascript - 触发事件取决于数据属性上的点击事件

标签 javascript jquery

我有 3 个具有相同数据属性的选项卡,但其值发生了变化。

<li>
    <a href="#tab1"
       data-set="set1">{{{text}}}</a>
</li>

<li>
    <a href="#tab2"
       data-set="set2">{{{text}}}</a>
</li>

<li>
    <a href="#tab3"
       data-set="set3">{{{text}}}</a>
</li>

根据您单击的元素中的哪一个,另一个元素必须更改其背景。

所以:

$('a[data-set="DYNAMIC SET"]').on('click', function(e) {        
    $('.eight-box').css({background: '/path/image'});        
});

我该怎么做才能使其动态化,而不仅仅是使用 if-else 或 switch-case?

可以说:set1 设置一个背景。 set2 设置另一个背景等等。因此图像的路径也会改变。

最佳答案

这会将事件附加到任何 <a>有一个 data-set属性;然后您可以使用 $(this).attr('data-set') 读取该属性根据其内容做任何您需要做的事情。

$('a[data-set]').on('click', function(e) {
  e.preventDefault(); // prevents the <a> from navigating
  var dataset = $(this).attr("data-set");
  console.log("You clicked on ",dataset);

  // do whatever you need based on that value, for example:
  $('.eight-box').css({background: '/path/'+dataset+'.jpg'});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li><a href="{{href}}" data-set="set1">{{{text}}}</a></li>
<li><a href="{{href}}" data-set="set2">{{{text}}}</a></li>
<li><a href="{{href}}" data-set="set3">{{{text}}}</a></li>
<li><a href="{{href}}" data-set="set4">{{{text}}}</a></li>
<li><a href="{{href}}">(No dataset on this one)</a></li>

关于javascript - 触发事件取决于数据属性上的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44467840/

相关文章:

javascript - 使用基本 MEAN 示例将 Javascript 文件包含到测试应用程序中的简单错误

jquery - 动画在 IE 中不起作用,但在 Firefox 中起作用

PHP/AJAX 邮件联系表单 - 电子邮件消息的一部分未显示

javascript - Extjs 4 : grid with more selType

javascript - Node JS,从两个链接同步发出HTTPS请求

javascript - 我如何调整这个 .when getJSON 以返回按日期排序的结果?

javascript - 所有图像存储到本地存储后如何调用函数

javascript - 如何为移动浏览器添加 pdf 查看器到网站

javascript - react ;映射数组后没有任何渲染

javascript - ionic 单选按钮 - Controller 范围无法识别更改