「li」からクラスを削除しようとしていますが、うまくいきません。これが私の機能です:
function setStore($s, id, name) {
//alert("length: " + $s.parents('ul.popup-cbo-menu').find('li.selected').length);
$s.parents('ul.popup-cbo-menu').find('li.selected').removeClass('selected');
//alert("length: " + $s.parents('ul.popup-cbo-menu').find('li.selected').length);
//$s.parent('li').addClass('selected');
$('#cboStores').val(name);
}
アラートを入れることで「選択」が解除されていることが確認できます。しかし、何らかの理由で、実際の「li」には影響しません。
jsfiddle は次のとおりです: http://jsfiddle.net/87xswem7/9/。しかし、何らかの理由で、jsFiddle は setStore() 関数を見つけることができません。
ポップオーバーを作成する方法は次のとおりです。
$(document).ready(function () {
$("#cboStores").popover({
viewport: 'body',
trigger: 'click',
placement: 'bottom',
html: true,
content: '<ul class="popup-cbo-menu">' +
' <li><a href="#" onclick="setStore($(this), -1, \'All Stores\')">All Stores</a></li>' +
' <li class="selected"><a href="#" onclick="setStore($(this), 1, \'My Foot\')">My Foot</a></li>' +
' <li><a href="#" onclick="setStore($(this), 2, \'My Foot 1\')">My Foot 1</a></li>' +
'</ul>',
template: '<div class="popover cont-popup-cbo-menu" role="tooltip">' +
' <div class="arrow"></div><h3 class="popover-title"></h3>' +
' <div class="popover-content"></div>' +
'</div>'
}).blur(function () {
$(this).popover('hide');
});
});
そして、これがhtmlの私の入力ボックスです:
<input type="text" id="cboStores" value="My Foot" />