你這個(gè)問題有很多現(xiàn)成的代碼,你上網(wǎng)找關(guān)鍵字“javascript tooltip”,結(jié)果會有一大堆。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了西寧免費(fèi)建站歡迎大家使用!
自己做也不難,原理就是設(shè)置 label 的兩個(gè) style 屬性:
visibility:hidden; /*不可見*/
position:absolute; /*絕對坐標(biāo)*/
輸入控件得到焦點(diǎn)(focus)的時(shí)候,取得該控件的絕對坐標(biāo)(left, top),根據(jù)這兩個(gè)值計(jì)算 label 的坐標(biāo),然后更新 lable 的 left 和 top,并且設(shè)置 visibility:visible 使其可見。輸入控件失去焦點(diǎn)(blur)的時(shí)候,又設(shè)置 visibility:false 使其隱藏。
推薦用 jQuery, jQuery 有很多優(yōu)秀的 tooltip 插件。
老兄,還是你自己找吧。就算別人找出來,你還要自己一點(diǎn)一點(diǎn)的研究,要不然根本不懂。他的什么都是用js來搞定。而且代碼又那樣,很雜亂。這個(gè)是一點(diǎn)點(diǎn)代碼:
function(v){
Object.extend(v,{
href:v._getAttr,
src:v._getAttr,
type:v._getAttr,
action:v._getAttrNode,
disabled:v._flag,
checked:v._flag,
readonly:v._flag,
multiple:v._flag,
onload:v._getEv,
onunload:v._getEv,
onclick:v._getEv,
ondblclick:v._getEv,
onmousedown:v._getEv,
onmouseup:v._getEv,
onmouseover:v._getEv,
onmousemove:v._getEv,
onmouseout:v._getEv,
onfocus:v._getEv,
onblur:v._getEv,
onkeypress:v._getEv,
onkeydown:v._getEv,
onkeyup:v._getEv,
onsubmit:v._getEv,
onreset:v._getEv,
onselect:v._getEv,
onchange:v._getEv
});
其實(shí)思路大家都知道,只是想把所有的代碼都找到。還是比較煩的。
用JavaScript隱藏控件的方法有兩種,分別是通過設(shè)置控件的style的“display”和“visibility”屬性。當(dāng)style.display="block"或style.visibility="visible"時(shí)控件或見,當(dāng)style.display="none"或style.visibility="hidden"時(shí)控件不可見。不同的是“display”不但隱藏控件,而且被隱藏的控件不再占用顯示時(shí)占用的位置,而“visibility”隱藏的控件僅僅是將控件設(shè)置成不可見了,控件仍然占俱原來的位置。
function displayHideUI()
{
var ui =document.getElementById("bbs");
ui.style.display="none";
}
function displayShowUI()
{
var ui =document.getElementById("bbs");
ui.style.display="";//display為空的話會好使,為block會使后邊的空間換行
}
function visibilityHideUI()
{
var ui =document.getElementById("bbs");
ui.style.visibility="hidden";
}
function visibilityShowUI()
{
var ui =document.getElementById("bbs");
ui.style.visibility="visible";
}
/script
值 描述
none 此元素不會被顯示。
block 此元素將顯示為塊級元素,此元素前后會帶有換行符。
inline 默認(rèn)。此元素會被顯示為內(nèi)聯(lián)元素,元素前后沒有換行符。
inline-block 行內(nèi)塊元素。(CSS2.1新增的值)
list-item 此元素會作為列表顯示。
run-in 此元素會根據(jù)上下文作為塊級元素或內(nèi)聯(lián)元素顯示。
compact CSS 中有值compact,不過由于缺乏廣泛支持,已經(jīng)從CSS2.1 中刪除。
marker CSS 中有值marker,不過由于缺乏廣泛支持,已經(jīng)從CSS2.1 中刪除。
table 此元素會作為塊級表格來顯示(類似table),表格前后帶有換行符。
inline-table 此元素會作為內(nèi)聯(lián)表格來顯示(類似table),表格前后沒有換行符。
table-row-group 此元素會作為一個(gè)或多個(gè)行的分組來顯示(類似tbody)。
table-header-group 此元素會作為一個(gè)或多個(gè)行的分組來顯示(類似thead)。
table-footer-group 此元素會作為一個(gè)或多個(gè)行的分組來顯示(類似tfoot)。
table-row 此元素會作為一個(gè)表格行顯示(類似tr)。
table-column-group 此元素會作為一個(gè)或多個(gè)列的分組來顯示(類似colgroup)。
table-column 此元素會作為一個(gè)單元格列顯示(類似col)
table-cell 此元素會作為一個(gè)表格單元格顯示(類似td和th)
table-caption 此元素會作為一個(gè)表格標(biāo)題顯示(類似caption)
inherit 規(guī)定應(yīng)該從父元素繼承display屬性的值。
今天解決的問題是在jsp頁面中給css定義的label.error的類一個(gè)id,然后通過控制id的可見性來實(shí)現(xiàn)收起div時(shí)清除js的提示信息。具體如下:
在準(zhǔn)備界面的函數(shù)中var label1 = document.getElementById("label1");
$(document).ready(function() {
$(".flipp .span4").click(function() {
$(this).parent().next().toggle();
$(this).parent().parent().prevAll().find(".panel").hide();
$(this).parent().parent().nextAll().find(".panel").hide();
var label1 = document.getElementById("label1");
label1.style.display="none";
})
然后在jsp相應(yīng)的地方加入:
label class="error" id="label1" for="currentPWD" generated="true" style="display:inline"/label
對于css定義的label.error類,可以使用$("label.error").removeAttr("style").attr("style", "display: none;");來實(shí)現(xiàn)如上的功能。。。。。而且,貌似也不用在地下相應(yīng)的位置給label定義id值
前面說過為HTML元素添加自定義的屬性,是通過手動(dòng)在HTML控件中加上,其實(shí)可以在javascript中動(dòng)態(tài)添加:如有一文本框:
復(fù)制代碼
代碼如下:
input
type="text"
id="txtInput"
name="txtInput"
value="自定義文本"
如想增加idvalue屬性(值為”自定義值”),可以在javascript中這樣寫:
復(fù)制代碼
代碼如下:
var
txt
=
document.getElementById("txtInput");
txt.setAttribute("idvalue","自定義值");
setAttribute中第一個(gè)參數(shù)是指明自定義屬性的名稱,第二個(gè)參數(shù)是初始值
代碼如下:
復(fù)制代碼
代碼如下:
html
head
title用javascript添加控件自定義屬性/title
script
language="javascript"
function
addCustomAttribute()
{
var
txt
=
document.getElementById("txtInput");
txt.setAttribute("idvalue","自定義值");
}
function
showIdValue()
{
var
txt
=
document.getElementById("txtInput");
alert(txt.attributes["idvalue"].nodeValue);
}
/script
/head
body
onload="addCustomAttribute();"
input
type="text"
id="txtInput"
name="txtInput"
value="自定義文本"
input
type="button"
value="顯示idValue"
onclick="showIdValue();"
/body
/html
就是一些用Javascript寫好的功能,可能是有界面的,也可能是沒有界面的。
比較常見的比如一些網(wǎng)頁上有日期選擇的效果,一般都是用所謂的javascript控件實(shí)現(xiàn)的。
可算新生事物,也不能算新生事物。Tree和日歷這樣的JS控件已經(jīng)誕生了不知多少年繁衍了不知多少代了。但是大規(guī)模的使用控件來開發(fā)Web應(yīng)用要數(shù)ASP.NET的誕生了。
分享文章:javascript控件,JavaScript組件
當(dāng)前地址:http://chinadenli.net/article9/dsigpih.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)站排名、自適應(yīng)網(wǎng)站、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)