查询字符串参数_layout可能包含0到9之间的值 也可能会失踪。
如果查询字符串参数不存在,则项目0必须标记为已选中。 Bootstrap 3下拉菜单项应根据其值标记为已选中。 我尝试了下面的代码但是项目没有标记,因为span元素不支持onload事件。
如何解决?
<ul class="dropdown-menu" role="menu">
<li>
<a onclick="LaadiVorm(0)">
<span onload="if(getParameterByName('_layout')=0) $(this).css('glyphicon glyphicon-ok')" aria-hidden="true"></span>
Vorm 0
</a>
</li>
<li>
<a onclick="LaadiVorm(1)">
<span onload="if(getParameterByName('_layout')=1) $(this).css('glyphicon glyphicon-ok')" aria-hidden="true"></span>
Vorm 1
</a>
</li>
</ul>
getParameterByName来自How can I get query string values in JavaScript?:
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
使用jquery,bootstrap 3,ASP.NET MVC4。
同样使用此样式不会在未选择的项目之前保留空白区域。 结果是:
v Vorm 0
Vorm 1
如何对所有字幕进行校对,以便结果
v Vorm 0
Vorm 1
不需要使用glyphicons,某些字体中的v
字符或其他可理解的字符可用于标记当前项目。
答案 0 :(得分:1)
我会尽力向你解释。
onload
对SPAN没有任何意义(它用于正文或img)。
$(selector).css(rules)
用于设置CSS规则,而不是类。
您可以将值与双等号(即a == b
)进行比较。
我认为您应该删除onload
并添加此Javascript:
$(document).ready(function(){
var layoutParam = getParameterByName('_layout');
$('.dropdown-menu li span').get(layoutParam).addClass('glyphicon glyphicon-ok');
});
对于对齐问题,您应该使用CSS添加左边距。也许:not()
pseudo-selector可能有用:
.dropdown-menu li span:not(.glyphicon.glyphicon-ok){
padding-left: 30px; //or a different dimension :)
}
我建议您在id
添加<ul>
并在选择器中使用它。