我有一個自定義的下拉菜單,其中.is(":checked")
用於填充div。 div填充正確,但我無法確定如何在單擊/ close圖標時刪除div中的選擇。將div與複選框關聯,然後將值設置爲false
我覺得我有麻煩的原因是因爲div只填充輸入值。我不確定如何從提案類型div中刪除此值,然後在單擊x圖標時刪除該項目以重新填充刪除列表。所以基本上,與填充它完全相反。
有沒有人看到我要做什麼來刪除投標類型div中的值,單擊drop-item-selected div的x-icon,然後如何在下拉菜單中再次顯示輸入?
對不起,如果有任何不清楚。如果您需要更清晰的話,請提出任何問題。
$('#proposal-type').text("Type of Project *");
\t $('.drop-item-input').on('change', function() {
\t var proposalVal = "";
\t var proposalHtml = "";
\t $('.drop-item-input').each(function() {
\t \t if ($(this).is(":checked")) {
\t \t \t proposalVal += $(this).val();
\t \t \t proposalHtml += '<div class="drop-item-selected"><span class="drop-item-close"></span>' + $(this).val() + '</div>';
\t \t \t $(this).closest('label').fadeOut();
\t \t };
\t \t //else if ($(this).is(":checked") === false) {
\t \t // \t $(this).closest('label').fadeIn();
\t \t //};
\t \t $('#proposal-type').val(proposalVal).html(proposalHtml);
\t \t $('#proposal-type-drop').removeClass('active');
\t });
\t //values
\t var type = $('.drop-item-input:checked').map(function() {
\t \t return $(this).val();
\t }).get().join(', ');
\t console.log(type);
\t });
\t $('.drop-item-close').click(function() {
\t \t $(this).fadeOut("medium", function() {
\t \t \t $this.detach().appendTo('#proposal-type-drop').fadeIn();
\t \t });
\t \t $(this).is(":checked") === false;
\t \t $(this).closest('label').fadeIn();
\t \t $(this).closest('.drop-item-selected').fadeOut();
\t });
#proposal-type {
border: 1px solid #858585;
height: 20px;
}
#proposal-type-drop {
width: 45%;
height
display: none;
position: absolute;
}
#proposal-type-drop.active {
background: rgba(0, 0, 0, 1);
display: block;
height: auto;
z-index: 1;
}
.drop-item {
color: #FFF;
font-size: .9rem;
padding: 5px;
background: #000;
display: block;
width: 100%;
cursor: pointer;
}
.drop-item-close {
\t display: inline-block;
\t background-image: url("https://www.wpclipart.com/signs_symbol/alphabets_numbers/outlined_alphabet/white_capitol/capitol_X_white.png");
\t background-size: 10px 10px;
background-repeat: no-repeat;
\t height: 10px;
\t width: 10px;
\t margin-right: 10px;
\t cursor: pointer;
}
.drop-item-input {
display: none;
}
.drop-item-selected {
background: blue;
padding: 5px;
font-size: .9rem;
width: auto;
display: inline-block;
margin: 0 3px;
}
.proposal-text {
width: 95%;
display: block;
height: 6em;
margin: 1.5% 2% 2.5% 2%;
!important
}
#proposal-check {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="proposal-type" class="proposal-input"></div>
<div id="proposal-type-drop">
<label class="drop-item">A<input type="checkbox" class="drop-item-input" value="A"></label>
<label class="drop-item">B<input type="checkbox" class="drop-item-input" value="B"></label>
<label class="drop-item">C<input type="checkbox" class="drop-item-input" value="C"></label>
</div>
我想我明白你在做什麼......基本上是一個搜索欄,你可以選擇多個項目作爲過濾器,當他們被點擊時,他們出現在「過濾器/搜索」div?我想在推進之前我的問題是 - 「爲什麼選擇複選框?」我可以看到這樣一種方法,你可以簡單地選擇div(按鈕?),當它們被點擊時,它們被移動並且它們的類被改變,以便觸發從條內再次點擊的相反效果?我關門了嗎? – Luke
你的理想非常接近。不過這不是搜索欄。這正在實施到各種聯繫形式。我正在使用輸入以便可以發送該值,因此如果未選中,它將顯示爲未選中狀態。 – Paul
'$('。drop-item-close')。click'不會被綁定處理程序後添加的元素觸發。參見[這裏](http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements)。快速的解決方案,使用$('#proposal-type-drop')。on('click','.drop-item-close',function(){...});' – James