Javascript 如何使用jquery将最后一个类赋予其他元素?
我有一些id动态变化的列表元素。接下来,我将这个id作为一个类逐个提供给另一个元素。这是我的代码:Javascript 如何使用jquery将最后一个类赋予其他元素?,javascript,jquery,class,callback,Javascript,Jquery,Class,Callback,我有一些id动态变化的列表元素。接下来,我将这个id作为一个类逐个提供给另一个元素。这是我的代码: $('#rounded_items li').one({click: function(){ $('#back_button').addClass(this.id); }}); 而#后退(back)按钮从#取整(rounded)项li接收类1、2、3、4。如何从back_按钮中获取最后一个类,并通过单击将其交给#rounded_项 是否有可能从接收该类的元素返回最后一个类 也许您可以将其
$('#rounded_items li').one({click: function(){
$('#back_button').addClass(this.id);
}});
而#后退(back)按钮
从#取整(rounded)项li
接收类1、2、3、4。如何从back_按钮
中获取最后一个类,并通过单击将其交给#rounded_项
是否有可能从接收该类的元素返回最后一个类 也许您可以将其存储为数据
$('#rounded_items li').one('click', function(){
var classes = $('#back_button').attr('class').split(/\s+/);
var last = classes[classes.length-1];
$.data($('#back_button')[0],'lastclass',last);
$('#back_button').addClass(this.id);
});
$('#back_button').click(function(){
var lastclass = $.data($('#back_button')[0],'lastclass');
$('#rounded_items').addClass(lastclass);
var classes = $('#back_button').attr('class').split(/\s+/);
$.data($('#back_button')[0],'lastclass',classes[classes.length-3]);
$('#back_button').removeClass(classes[classes.length-1]);
});
您也可以尝试以下方法:
$('#back_button').click(function(){
var classes = $('#back_button').attr('class').split(/\s+/);
$('#rounded_items').addClass(classes[classes.length-2]);
$('#back_button').removeClass(classes[classes.length-1]);
});
使用数组来存储ID,而不是类属性
var stack = [];
$('#rounded_items li').one('click',function(){
stack.push(this.id);
});
$('#back_button').click(function(){
$('#rounded_items').setClass(stack.pop());
});
我假设您的类并没有真正被用来设计任何样式,因为它们不是合法的CSS标识符。如果只是为了存储某些状态,请使用
.data
:
var $back = $('#back_button');
$back.data('state', []); // empty array to store state
$('#rounded_items li').one({click: function() {
$back.data('state').push(this); // store clicked element
});
$back.on('click', function() {
var elem = $back.date('state').pop(); // retrieve last clicked element
if (elem) {
// do something with elem...
}
});
如果代码都在同一个词法范围内,您可以只使用本地数组来存储状态,而不必使用
.data()
您所说的“从#back_按钮
抓取最后一个类”是什么意思?@Bergi嗯,我想是添加到按钮的最后一个类。。。问题是,“通过单击将其分配给#取整的#项”是什么意思。列表元素的id通过ajax进行了动态更改,我将它们作为类分配给某种链中的#后退#按钮:1,2,3,4。如何抓取最后一个类并将其交给其他元素,在这种情况下#rounded_ItemsMembers不是合法的CSS类…@ukaszBorawski你到底想做什么?这些类是否确实改变了视觉外观,或者您只是使用类
字段作为临时数据存储?我需要在单击“后退”按钮后提供此类我非常确定您不应该使用类名存储这些值-更新的回答它的工作,但舍入的\u项接收此类的所有内容,而不是最后一个:(替换$(“#舍入的\u项”).addClass(lastclass)
带$(“#四舍五入项目li#”+lastclass)。addClass(lastclass)
@Gustonez它会将类添加到id与lastclass
相同的li
,但是OP想将类添加到#rounded_items
@ukaszBorawski,当你说不能重复它时,你是什么意思???也许你需要从backbutton$(“#back button#u button”)中删除类。removeClass(类)[classes.length-1]
?我以为他想切换该类。但似乎每次单击“后退”按钮时,他都想将上一个类一直往后退!