正如标题所说,我试图限制某个列表中可选项的数量,但搜索我发现我必须将此行添加到我的代码中的SO并没有做到这一点:
if ($(".ui-selected, .ui-selecting").length > 4) {
$(ui.selecting).removeClass("ui-selecting");
}
我的代码确实与他们的代码略有不同,所以也许我实现它错了,但下面是我的(工作)代码。所以我试图在这里努力的是,一旦var total 达到某个值(例如5),就应该禁用所有可选项。当达到5的值时,不应再选择任何项目,但仍然可以取消选择。 JSFiddle:https://jsfiddle.net/ut1pgxcg/
使用Javascript:
$( "#selectable" ).bind( "mousedown", function ( e ) {
e.metaKey = true;
} ).selectable({
filter: "li:not(.taken)",
stop: function() {
var result = [];
$( ".ui-selected", this ).each(function() {
result.push($(this).data('price'));
});
var sum = result.length;
$( "#select-result" ).html(sum);
var total = 0;
$.each(result,function() {
total += this;
});
$( "#price-result" ).html(total);
}
});
HTML:
<span>You selected:</span> <span id="select-result">0</span> slots, costing you +- $<span id="price-result">0</span>
<ol id="selectable">
<li class="raffle-slot" data-price="2">1</li>
<li class="raffle-slot taken" data-price="2">2</li>
<li class="raffle-slot" data-price="2">3</li>
</ol>
答案 0 :(得分:2)
好像你的代码可以简化一下。见https://jsfiddle.net/u9z8t74u/
currentElement.Id = loadedAlias.Id;
currentElement = loadedAlias; // this seems pointless
dbContext.Entry(loadedAlias).State = EntityState.Unchanged;
全局变量可以在闭包中被吸收,但这是一个快速而肮脏的解决方案,采用更简单的方法,IMO。