简单.显示函数在页面加载时不显示DIV
Simple .Show function not displaying DIV on page load
我的页面上有一个复选框"cbxShowNotifications"。如果在页面加载时选中了它,我想显示"树状视图"
.aspx页面:
<html>
<body>
<form>
<asp:CheckBox ID="cbxShowNotifications" runat="server"/>Show Notifications
<div id="treeview"></div>
</form>
<script src="../Scripts/jquery.min.js" type="text/javascript"> </script>
<script src="../Scripts/kendo.web.min.js" type="text/javascript"> </script>
<script src="../Scripts/NotificationsTreeView.js" type="text/javascript"> </script>
<script type="text/javascript">
$(document).ready(function()
{
showOrHide();
});
</script>
<script type="text/javascript">
$(document).ready(function()
{
CreateNotificationTree(<%= UserId.ToString(CultureInfo.InvariantCulture) %>);
});
</script>
</body>
</html>
JavaScript文件:
function CreateNotificationTree(userId)
{
var data = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "../api/notifications/byuserid/" + userId,
contentType: "application/json"
}
},
schema: {
model: {
children: "notifications"
}
}
});
$("#treeview").kendoTreeView({
dataSource: data,
loadOnDemand: true,
dataUrlField: "LinksTo",
checkboxes: {
checkChildren: true
},
dataTextField: ["notificationType", "NotificationDesc"],
select: treeviewSelect
});
function treeviewSelect(e)
{
var node = this.dataItem(e.node);
window.open(node.NotificationLink, "_self");
}
}
$('#cbxShowNotifications').on('change', function()
{
debugger;
var tview = $('#treeview');
if ($(this).prop('checked'))
{
tview.show();
}
else
{
tview.hide();
}
});
function showOrHide()
{
debugger;
var tview = $('#cbxShowNotifications');
if ($(this).prop('checked'))
{
tview.show();
}
else
{
tview.hide();
}
}
问题是,当页面加载并且选中复选框时,树视图是不可见的。我做错了什么?
顺便说一句,在加载页面后,如果我取消选中复选框,树就会消失,如果我选中它,它就会出现。
所以这只发生在页面加载时,这让我相信这是一个何时执行的问题。
cbxShowNotifications
是一个.net服务器控件。因此,ID将不会保持不变。观察DOM中ID以Page&控制信息,即类似于"master_ctrl_cbxShowNotifications"的信息
我建议你给它加一个类&使用类作为选择器。
<asp:CheckBox ID="cbxShowNotifications" CssClass="chkBoxNotif" runat="server"/>
$('.chkBoxNotif').on('change', function(event) {
//Do something
});
在函数showOrHide
中
更改:
if ($(this).prop('checked'))
至
if ($('#cbxShowNotifications').prop('checked'))
this
值不是复选框。
相关文章:
- JavaScript/jQuery:显示DIV,直到用户停止在Textbox中键入
- 在if/else语句中显示DIV
- onSubmit在php脚本的开头显示DIV
- 使用getElementsByClassName在点击时显示Div的Javascript
- 使其在悬停文本时显示Div
- 如何只在收到服务器的回复消息后显示DIV
- 隐藏/显示DIV
- 简单的多选项卡隐藏/显示DIV
- 当满足javascript/jquery条件时显示DIV(包括jsFiddle链接)
- Javascript在秒消失时显示DIV元素,并在此之后隐藏栏的选项
- 如何根据另一个 DIV 内容的可见性显示 DIV 内容
- 单击时隐藏并显示 Div
- 如果选择了所有无线电中的任何一个选项,则显示 Div
- 如何根据 Div ID 内容隐藏/显示 DIV
- 在 JQuery 对话框中隐藏和显示 Div 内容
- 检测YouTube时间然后显示DIV?使用 JavaScript
- 按自定义顺序显示 DIV
- 当用户从页面底部达到 X 像素时,如何显示 DIV
- 在提交时显示 DIV 的内容
- 单击单选选择时动态显示 DIV