我正在使用导航加载一些div内容,并且我已经使大部分内容正常工作。但是我现在正试图建立:
http://www.bulgaria-web-developers.com/projects/javascript/selectbox/
在选择下拉列表中,使用以下方法调用样式:
$(function () {
$("#select").selectbox();
});
我无法看到我如何申请:
$(document).on('mousedown', '.nav-link', function() {
第一次出现的时候?任何建议都非常赞赏,欢呼。
更新
没关系,我已经完成了。
第二次更新
好的,我刚发现了2个问题。首先,我使用以下方式显示:
if (href == 'requestedpage.php') {
$(function () {
$("#select").selectbox();
});
};
当第一次加载页面时,选择框的样式设置正确,但是如果你转到另一个页面然后返回,它不会第二次应用该样式?
我遇到的另一个问题是当你点击选项时,下拉列表会进行选择,但选择列表中的所有选项都会保留在视图中。
HTML代码为:
<select id="selectlist" name="selectlist" onchange="updatevariable(this.value)" tabindex="1">
<option value="">-- Select Quantity --</option>
<option value="1">Option1</option>
<option value="2">Option2</option>
<option value="3">Option3</option>
</select>
通过删除onchange事件对问题2进行排序!
提前感谢任何可以帮助我的人。
答案 0 :(得分:1)
如果您在导航时没有应用样式,则可能就像在回调中设置标记一样简单。
一种方法是将标志值发送到隐藏的输入字段,该字段将在页面提交时发布到您的服务器。这意味着当您向后导航时,您可以检查标志是否存在,如果是,则应用样式
或者,如果要为支持HTML5的浏览器构建此应用程序,则可以保存到AJAX回调中的sessionStorage
。
所以,在你检查href的地方,添加:
if (href == 'userarea-page1.php') {
$(function() {
$("#select").selectbox();
sessionStorage.selectFlag = "true";
});
};
然后,在您的$("a.nav-link").click
事件之上(在您的document.ready中),您可以检查是否已设置此事件。如果有,请应用样式。
$(document).ready(function() {
if (sessionStorage.selectFlag == "true") {
$("#select").selectbox();
}
$("a.nav-link").click(
...
);
);
这将保持页面之间的样式状态。如果您想要删除样式,请确保清除标记,否则它将永久应用。
答案 1 :(得分:0)
我不确定你为什么要在页面加载时通过javascript设置样式,但如果这是你正在做的事情,尝试这可能会有所帮助:
$(document).ready(function() {
$("#select").selectbox();
);