jQuery - 填充并从一个div移除到另一个div

时间:2016-07-18 22:14:15

标签: jquery

我正在尝试从已填充的列表中删除元素以附加到另一个列表(div)。我有功能设置,但我希望从左侧列表中选择的元素在移动到右侧列表时消失。 使用$(" .choosefromlist")。haide();只是让整个列表全部隐藏起来。我只想让你在左边选择的元素在选中时消失。如果你能告诉我如何摆脱右边的li nav点,你会获得奖励!

这是我的小提琴: https://jsfiddle.net/9vtnq8fk/

function setActive() {
  aObj = document.getElementById('nav').getElementsByTagName('a');
  for(i=0;i<aObj.length;i++) { 
    if(document.location.href.indexOf(aObj[i].href)>=0) {
      aObj[i].className='active';
    }
  }
}

window.onload = setActive;

});

提前致谢!

1 个答案:

答案 0 :(得分:0)

最简单的最不可思议的方法是将css设置为display:none。您还需要在将类添加回来时将其重新设置为阻止。代码看起来像

//populate the chosenlist
$(document).on('click', '.choosefromlist', function () {
    var name = $(this).attr("name");
    var id = $(this).attr("id");
    var answerCount = $('.answer .chosenlist li').length;
    if(answerCount<3){
        $('.chosenlist').append('<li class="choice" name="' + name + '" value="' + id + '">' + name + '</li>');
    // make this link unclickable
        $(this).removeClass('choosefromlist').css('display', 'none');
    }
});

//remove options from the chosenlist
$(document).on('click', '.choice', function () {
    var name = $(this).attr('value');
    $(this).remove();
   // make the original link clickable again
    $('#' + name).addClass('choosefromlist').css('display', 'block');
});

首选方法是创建一个隐藏它的类,然后添加/删除类,如

CSS

.hide {
  display: none;
}
li{
  list-style:none;
}

JS

$(this).removeClass('choosefromlist').addClass('hide');
...
$('#' + name).addClass('choosefromlist').removeClass('hide');

修改:更新为禁用li子弹以获得奖励积分&#34; :)