jQuery:为每个点击函数添加多个数据属性
jQuery: add multiple data attributes with each click function
我有一个点击功能设置,当你点击.click
div时,它会获取data-hook
属性,并将其作为data-filter
属性添加到.button
div,这很好,但每次点击后,它都会用新属性替换data-filter
属性,理想情况下,我希望每次点击都给属性添加一个新值,用逗号分隔每个值
以下是jsFiddle演示:http://jsfiddle.net/neal_fletcher/pSZ2G/
HTML
<div class="button">THIS</div>
<div class="click" data-hook="one">CLICK</div>
<div class="click" data-hook="two">CLICK</div>
<div class="click" data-hook="three">CLICK</div>
<div class="click" data-hook="four">CLICK</div>
<div class="click" data-hook="five">CLICK</div>
jQuery:
$(".click").click(function () {
var thing = $(this).attr("data-hook");
$('.button').attr('data-filter', thing);
});
如果这是可能的话?如有任何建议,我们将不胜感激!
您可以存储以前的值,也可以与新单击的值进行连接,类似于。
$(".click").click(function () {
var thing = $(this).attr("data-hook");
var earData = $('.button').attr('data-filter');
if(typeof earData != 'undefined'){
$('.button').attr('data-filter', earData + ","+thing);
}else{
$('.button').attr('data-filter', thing);
}
});
DEMO
$(".click").click(function () {
var thing = $(this).attr("data-hook");
var prevValue = $('.button').attr('data-filter');
if(prevValue){
$('.button').attr('data-filter', prevValue +','+thing)
}
else{
$('.button').attr('data-filter', thing)
}
});
$(".click").click(function () {
var thing = $(this).attr("data-hook")||'';
var df = $('.button').attr('data-filter')||'';
$('.button').attr('data-filter', df+','+thing)
});
顺便说一句。。我希望你没有任何其他元素包含.button
类。如果你想更新一个目标,你应该通过id attrib引用。
相关文章:
- 为JS函数添加延迟
- 如何向这个javascript/jquery函数添加参数
- 在Jquery中分离后,如何将相同的函数添加回代码中
- 为什么我要将函数添加到对象原型中,而不是将其添加到对象中
- 正在向构造函数添加作用域变量
- 必应地图没有'当我向函数添加另一个参数时,t显示
- 向函数添加多条语句
- 将JS函数添加到并行队列中
- Javascript - 如何向对象构造函数添加属性
- 将点击函数添加到动态 HTML 链接
- 如何将 JavaScript 函数添加到 Active 类中
- 如何将回调函数添加到 .map 方法
- 使用JavaScript函数添加多个DIV元素
- 如何将函数添加到动态创建的Selectable(jqueryui)中
- 将jquery函数添加到Angular ng repeat中
- Javascript对象/名称空间-如何访问从嵌套函数添加的属性(包括示例)
- 如何在javascript中向回调函数添加附加参数
- AngularJS将函数添加到作用域
- 如何在不向现有JavaScript函数添加代码的情况下向该函数添加回调函数
- 原型-var x=[]-将函数添加到x上