Jquery 在值使用cookie更改后检查select控件的状态?
我实现了一些代码(如下)来检查ContentID的状态并隐藏或显示一个DIV:Jquery 在值使用cookie更改后检查select控件的状态?,jquery,Jquery,我实现了一些代码(如下)来检查ContentID的状态并隐藏或显示一个DIV: <select id="ContentID" name="ContentID"> <option selected="selected" value="00">Menu</option> <option value="01">Topic</option> </select>
<select id="ContentID" name="ContentID">
<option selected="selected" value="00">Menu</option>
<option value="01">Topic</option>
</select>
<input id="htmlEdit" type="checkbox" />
$("#ContentID")
.val($.cookie("ContentID_dropdown"))
.change(function () {
if ($(this).val() == "00")
$("#htmlSwitch").show();
else
$("#htmlSwitch").hide();
$.cookie("ContentID_dropdown", $(this).val(), { expires: 365, path: '/' });
refreshGrid("Content");
});
菜单
话题
$(“#ContentID”)
.val($.cookie(“ContentID_下拉列表”))
.改变(功能){
如果($(this.val()=“00”)
$(“#htmlSwitch”).show();
其他的
$(“#htmlSwitch”).hide();
$.cookie(“ContentID_下拉列表”,$(this.val(),{expires:365,path:'/'});
刷新网格(“内容”);
});
此代码有效,但仅当ContentID的值更改时有效。我需要的是在值被cookie更改后也会检查值的东西
change函数中检查.val()的代码不会检查任何内容,也不会在使用cookie设置初始值时运行。因此,如果我的cookie设置为Topic,那么它将被忽略,而htmlSwitch DIV将在不应该的时候出现。有没有办法让它检查初始值并隐藏或显示htmlSwitch id?如果在绑定
更改后立即触发它会怎么样
$("#ContentID")
.val($.cookie("ContentID_dropdown"))
.change(function () {
if ($(this).val() == "00")
$("#htmlSwitch").show();
else
$("#htmlSwitch").hide();
$.cookie("ContentID_dropdown", $(this).val(), { expires: 365, path: '/' });
refreshGrid("Content");
})
.trigger('change');
如果在更改绑定后立即触发它会怎么样
$("#ContentID")
.val($.cookie("ContentID_dropdown"))
.change(function () {
if ($(this).val() == "00")
$("#htmlSwitch").show();
else
$("#htmlSwitch").hide();
$.cookie("ContentID_dropdown", $(this).val(), { expires: 365, path: '/' });
refreshGrid("Content");
})
.trigger('change');
谢谢-这似乎很管用。我从来没有想过按照你的建议去做。你的路很干净。我注意到的一件事是DIV出现了一秒钟,然后被隐藏。有没有一种方法可以让我的代码在默认情况下不可见,然后让我的代码将不可见更改为show()或hide(),只需使用CSS显示:无
您的htmlSwitch元素。@Jessica确定,将隐藏
属性添加到元素:…
@Eli-确定吗?警告不要以这种方式使用该属性。我根据元素的名称猜测@Jessica没有隐藏包含内容的元素,但是如果我不正确,那么您就是正确的。您不想使用hidden或display:none隐藏元素,因为屏幕阅读器无法访问内容。其他技术会更好。谢谢-这似乎可以做到。我从来没有想过按照你的建议去做。你的路很干净。我注意到的一件事是DIV出现了一秒钟,然后被隐藏。有没有一种方法可以让我的代码在默认情况下不可见,然后让我的代码将不可见更改为show()或hide(),只需使用CSS显示:无
您的htmlSwitch元素。@Jessica确定,将隐藏
属性添加到元素:…
@Eli-确定吗?警告不要以这种方式使用该属性。我根据元素的名称猜测@Jessica没有隐藏包含内容的元素,但是如果我不正确,那么您就是正确的。您不想使用hidden或display:none隐藏元素,因为屏幕阅读器无法访问内容。最好采用其他技术。