javascript – div中的dropdownlist显示onmouseover工具提示
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – div中的dropdownlist显示onmouseover工具提示,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3689字,纯文字阅读大概需要6分钟。
内容图文
![javascript – div中的dropdownlist显示onmouseover工具提示](/upload/InfoBanner/zyjiaocheng/745/440dc64d57e747f6a698c7e5b1a89d0b.jpg)
以下代码用于div的onmouseover,当我第一次将鼠标移到div元素上时没有显示工具提示,但如果我点击某处并带上鼠标并显示工具提示.不确定我做错了什么?是否有正确的方法来显示div内的READ ONLY下拉列表的工具提示?
DropDown.ascx
<div style="z-index:99;position:relative;padding:1px;" onm ouseover="this.title=<%= ddl.ClientID %>.options[<%= ddl.ClientID %>.selectedIndex].text">
<asp:DropDownList ID="ddl" runat="server" CssClass="etms-dropdown-width" style="position:relative;z-index:-1;">
</asp:DropDownList>
</div>
DropDown.ascx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
....
this.ddl.Attributes["onmouseover"] = "this.title=this.options[this.selectedIndex].text";
foreach (ListItem item in this.ddl.Items)
{
item.Attributes["title"] = item.Text;
}
this.ddl.DataBind();
}
else
{
this.ddl.Attributes["onmouseover"] = "this.title=this.options[this.selectedIndex].text";
foreach (ListItem item in this.ddl.Items)
{
item.Attributes["title"] = item.Text;
}
}
}
解决方法:
HTML方法
由于你想显示一个只读的标题(例如Enabled = false)DropDownList,我相信没有理由使用任何JavaScript并坚持使用纯HTML.
请参阅以下示例:
<div title="<%=DropDownList2.SelectedItem.Text %>">
<asp:DropDownList ID="DropDownList2" runat="server" Enabled="false">
<asp:ListItem Value="1" Text="Disabled item 1"></asp:ListItem>
<asp:ListItem Value="2" Text="Disabled item 2"></asp:ListItem>
<asp:ListItem Value="3" Text="Disabled item 3"></asp:ListItem>
</asp:DropDownList>
</div>
我在所有浏览器(Firefox 32,IE 11,Chrome 37,Opera 24)中测试过,它没有任何问题.
JavaScript方法
另一方面,如果您需要JavaScript / jQuery方法,则可以使用以下示例.在div上的mouseover事件中,DropDownList临时启用以获取其值,然后再次禁用它.检索到值后,div的title属性会发生变化.
重要的是div有一些填充,以便光标悬停在div上,最终将触发事件.
HTML:
<div class="dynamictoolip" title="title">
<asp:DropDownList ID="DropDownList3" runat="server" Enabled="false">
<asp:ListItem Value="1" Text="Disabled item 1"></asp:ListItem>
<asp:ListItem Value="2" Text="Disabled item 2"></asp:ListItem>
<asp:ListItem Value="3" Text="Disabled item 3"></asp:ListItem>
</asp:DropDownList>
</div>
CSS:
.dynamictoolip {
display:inline-block;
padding:4px;
}
JavaScript的:
jQuery('.dynamictoolip').mouseover(function () {
var jThis = jQuery(this);
var jDdl = jThis.find('select');
var value = jDdl.find("option:selected").text();
if (jDdl.prop('disabled')) {
jDdl.removeAttr('disabled');
jDdl.attr('disabled', 'disabled');
jThis.attr('title', value);
}
else {
jThis.attr('title', value);
}
});
注意:我在这里注意到的一个问题是,如果用户移动光标太快,则不会触发鼠标悬停事件.我也尝试使用mouseenter和mouseout事件(并且还尝试了普通的JavaScript和没有jQuery),但它没有任何区别.
根据最新评论进行编辑
虽然你的< asp:DropDownList>将处于禁用和启用状态,工具提示应始终保留在父元素上.
我们唯一需要做的是当< asp:DropDownList>更改其值,父元素的title属性也要更改,这可以通过一些JavaScript来完成.
在下面的代码中,我添加了一个简单的链接来启用< asp:DropDownList>.此外,here是代码的jsfiddle.
HTML
<div>
simple ddl 2:
<span title="<%=DropDownList2.SelectedItem.Text %>">
<asp:DropDownList ID="DropDownList2" runat="server" CssClass="ddl2" Enabled="false">
<asp:ListItem Value="1" Text="Disabled item 1"></asp:ListItem>
<asp:ListItem Value="2" Text="Disabled item 2"></asp:ListItem>
<asp:ListItem Value="3" Text="Disabled item 3"></asp:ListItem>
</asp:DropDownList>
</span>
<a href="#" class="edit_ddl2">edit</a>
</div>
JavaScript的
jQuery('.edit_ddl2').click(function () {
jQuery('.ddl2').prop('disabled', false);
return false;
});
jQuery('.ddl2').change(function () {
var jThis = jQuery(this);
jThis.parent().attr('title', jThis.find("option:selected").text());
jThis.prop('disabled', true); // remove this line if you want the element to stay enabled
});
内容总结
以上是互联网集市为您收集整理的javascript – div中的dropdownlist显示onmouseover工具提示全部内容,希望文章能够帮你解决javascript – div中的dropdownlist显示onmouseover工具提示所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。