我们使用JQuery colorbox和sidebars来创建应用程序。 内容包括颜色框区域和侧边栏区域。 如果单击颜色框区域元素,该元素将被复制到侧边栏区域。 如果我单击HTML下面的sidebars区域元素,该元素将复制另一个区域。 本机侧边栏元素将被复制没有问题,但彩色区域中复制的元素将不会被复制,标签颜色也不会更改。
<div class="checkbox" id="additional_member">
<input type="checkbox" name="checkbox_member" id="sidebar_member1" class="cb_member" value="155">
<label for="sidebar_member1" class="sb_member checked" id="lb_sb1">
<span id="member_name1">TEST1</span>
</label>
<input type="checkbox" name="checkbox_member" id="sidebar_member2" class="cb_member" value="025">
<label for="sidebar_member2" class="sb_member" id="lb_sb2">
<span id="member_name2">TEST2</span>
</label>
</div>
//sidebars
$('#additional_member').on('click', '.sb_member', function(){
var index = $(".sb_member").index(this);
var val = $("#sidebar_member" + ( index +1 ) ).val();
var str = $("span#member_name" + ( index +1 )).html();
//
if($("div#additional_member label:eq(" + index + ")").hasClass("checked")){
//remove
$("div#add_member input").filter(function(){
return $(this).val() == val;
}).remove();
//remove from member list
$("ul#member_list li").filter(function(){
return $(this).text() == str;
}).remove();
//color turns to white(not checked)
var j = 0;
var pos = 0;
$("div#additional_member input").filter(function(){
if(val == $(this).val()){
pos = j;
}
j++;
});
$("div#additional_member label:eq(" + pos + ")").removeClass('checked');
return false;
}else{
var count_li = $("ul#member_list li").length;
$('<input>').attr({
type: 'hidden',
class: 'member',
id: 'member_id' + (index + 1),
name: 'member[]',
value: val
}).appendTo('div#add_member');
//
var j = 0;
var pos = 0;
$("div#additional_member input").filter(function(){
if(val == $(this).val()){
pos = j;
}
j++;
});
$("div#additional_member label:eq(" + pos + ")").addClass('checked');
//string for assigned member section
var str_li = '<li id="list_elm' + (count_li + 1) + '">' + str + '</li>';
//data for POST
var j = 0;
$("div#add_member input").filter(function(){
if(val == $(this).val()){
j++;
}
});
//member list
var j = 0;
$("ul#member_list li").filter(function(){
if(str == $(this).text()){
j++;
}
});
//append
if(j == 0){
$('ul#member_list').append(str_li);
}
return false;
}
});
if($("div#additional_member label:eq("+index+")").hasClass("checked")){
不起作用。 这部分处理了两次。我无法理解原因。
请告诉我!!