發(fā)現(xiàn)自己老是會(huì)遇到一些小問(wèn)題玩般,在百度解決過(guò)后有的時(shí)候很快就忘記了,決定用一個(gè)專門(mén)的地方記錄這些問(wèn)題,從今天開(kāi)始携狭。
1、jQuery中想阻止子元素觸發(fā)父元素事件
使用類似
$('a').click(function(e){e.stopPropagation();})
方法回俐,這是阻止事件冒泡逛腿。
2 、
var $td=$("#file tr").find("td");
alert($td);
會(huì)輸出[object, object]鲫剿,這是為什么呢鳄逾?明明$td是數(shù)組。
3灵莲、jQuery搜索操作(父輩元素雕凹、同輩、子元素搜索)
父元素搜索
(1)parents([selector]) 方法
$("p").parents().css("border","1px solid #999"); //給p元素的父元素添加邊框樣式
$("p").parents("div").css(...); //給p元素的父元素中的div元素添加樣式
(2)closest(selector[,context]) 方法
$("p").closest("div").css("color","blue"); //給指定p元素的第一個(gè)匹配的上級(jí)元素設(shè)置字體顏色
(3)parent([selector]) 方法
$("p").parent().css("border","1px solid #999"); //給p元素的父元素添加邊框樣式
(4)parentsUtil([selector]) 方法
(5)offsetParent() 方法政冻。
同輩元素搜索
(1)next([selector])
(2)nextAll([selector])
(3)nextUtil([selector])
(4)prev([selector])
(5)prevAll([selector])
(6)prevUtil([selector])
(7)siblings([selector]) //搜索所有同輩元素
子元素搜索
(1)children([selector]) //只搜索所有直接子元素
(2)find(selector) //必須有參數(shù)枚抵,搜索所有子元素
4、怎么用jquery實(shí)現(xiàn)用enter鍵代替點(diǎn)擊的效果明场?
思路:檢測(cè)輸入的鍵汽摹,若為enter鍵則實(shí)現(xiàn)對(duì)應(yīng)的效果,回車鍵keycode為13苦锨。
$(document).keydown(function(event){
if(event.keyCode==13){ $("#mouse").click(); }
});
5逼泣、手機(jī)端,輸入法擋住了輸入框的問(wèn)題怎么解決舟舒?
思路:檢測(cè)輸入框的輸入事件拉庶,focus,click秃励,當(dāng)事件發(fā)生時(shí)將輸入框的位置移動(dòng)到頁(yè)面上部氏仗。
問(wèn)題:
- Q: 怎么將輸入框的位置移到頁(yè)面首部?
- A:發(fā)現(xiàn)頁(yè)面沒(méi)有撐開(kāi)夺鲜,導(dǎo)致頁(yè)面不能往上移皆尔,最后用了增加margin-bottom來(lái)使頁(yè)面撐開(kāi)來(lái)實(shí)現(xiàn)效果呐舔,但是當(dāng)收起輸入法的事件無(wú)法獲取,導(dǎo)致不能及時(shí)把margin-bottom改回來(lái)慷蠕,有點(diǎn)不太友好珊拼。
$('textarea').focus(function(){
$("body").css("margin-bottom","60%");
});
$('textarea').blur(function(){
$("body").css("margin-bottom","0");
})
6、邊框的CSS重疊砌们,導(dǎo)致像素變粗
- 設(shè)置div的margin值為邊框值的相反數(shù)就行
border-collapse 屬性設(shè)置表格的邊框是否被合并為一個(gè)單一的邊框杆麸,還是象在標(biāo)準(zhǔn)的 HTML 中那樣分開(kāi)顯示。
7浪感、eval("("+")")昔头,記得要加括號(hào),不然它不會(huì)把它解析成對(duì)象S笆蕖=腋!
8峻堰、CSS outline屬性
在瀏覽器里讹开,當(dāng)鼠標(biāo)點(diǎn)擊或使用Tab鍵讓一個(gè)鏈接或者一個(gè)radio獲得焦點(diǎn)的時(shí)候,該元素將會(huì)被一個(gè)輪廓虛線框圍繞捐名。這個(gè)輪廓虛線框就是 outline 旦万。
outline 與 border 的區(qū)別
border 可應(yīng)用于幾乎所有有形的html元素,而 outline 是針對(duì)鏈接镶蹋、表單控件和ImageMap等元素設(shè)計(jì)成艘。從而另一個(gè)區(qū)別也可以推理出,那就是: outline 的效果將隨元素的 focus 而自動(dòng)出現(xiàn)贺归,相應(yīng)的由 blur 而自動(dòng)消失淆两。這些都是瀏覽器的默認(rèn)行為,無(wú)需JavaScript配合CSS來(lái)控制拂酣。outline 不會(huì)象border那樣影響元素的尺寸或者位置秋冰。
去除焦點(diǎn)虛線:
outline:none;
IE7以下:hidefocus="true";
9、JavaScript的月份范圍用整數(shù)表示是0~11婶熬,0表示一月剑勾,1表示二月……
10、使用navigator.userAgent來(lái)判斷瀏覽器類型
1赵颅、瀏覽器版本號(hào)函數(shù):
var br=navigator.userAgent.toLowerCase();
var browserVer=(br.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [0, '0'])[1];
2虽另、js瀏覽器判斷函數(shù)
function userBrowser(){
var browserName=navigator.userAgent.toLowerCase();
if(/msie/i.test(browserName) && !/opera/.test(browserName)){
alert("IE");
return ;
}else if(/firefox/i.test(browserName)){
alert("Firefox");
return ;
}else if(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName)){
alert("Chrome");
return ;
}else if(/opera/i.test(browserName)){
alert("Opera");
return ;
}else if(/webkit/i.test(browserName) &&!(/chrome/i.test(browserName) && /webkit/i.test(browserName) && /mozilla/i.test(browserName))){
alert("Safari");
return ;
}else{
alert("unKnow");
}
}
11、URL 絕對(duì)路徑性含、相對(duì)路徑
"./" 代表當(dāng)前目錄,"../"代表上級(jí)目錄
12洲赵、<div>
包含<img>
邊距問(wèn)題
- Q:在寫(xiě)一個(gè)
<div>
里包含一個(gè)<img>
時(shí)發(fā)現(xiàn)總是會(huì)有一個(gè)間距鸳惯,但是就是找不到為什么商蕴。 - A:設(shè)置
<img>
的display:none;
13叠萍、編寫(xiě)一個(gè)jQuery插件的原則:
- 給$.fn綁定函數(shù),實(shí)現(xiàn)插件的代碼邏輯绪商;
- 插件函數(shù)最后要return this;以支持鏈?zhǔn)秸{(diào)用苛谷;
- 插件函數(shù)要有默認(rèn)值,綁定在$.fn.<pluginName>.defaults上格郁;
- 用戶在調(diào)用時(shí)可傳入設(shè)定值以便覆蓋默認(rèn)值腹殿。
來(lái)源:廖雪峰的官方網(wǎng)站
14、JS生成二維碼
在工作中遇到一個(gè)需求就是要使用JS生成二維碼而不是單純的圖片例书,在網(wǎng)上看了一下解決方法锣尉,基本上是使用jquery.qrcode.js插件。以下筆記來(lái)源:http://www.cnblogs.com/CraryPrimitiveMan/p/4293998.html 决采,
http://blog.wpjam.com/m/jquery-qrcode/
具體用法
qrcode是jquery組件自沧,需要至少兩個(gè)js, 就是 jquery 和 jquery.qrcode∈鞑t?梢缘?a target="_blank" rel="nofollow">https://github.com/jeromeetienne/jquery-qrcode 獲取最新的代碼拇厢。
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.qrcode.min.js"></script>
在頁(yè)面上,需要顯示二維碼的地方加入一個(gè)空元素(此處用div)
<div id="qrcode"></div>
在需要生成二維碼的時(shí)候晒喷,調(diào)用一下語(yǔ)句直接生成孝偎。
$("#qrcode").qrcode("http://www.cnblogs.com/CraryPrimitiveMan/");//需要生成的頁(yè)面
15、《JS高級(jí)程序設(shè)計(jì)第三版》疑問(wèn)
在5.6 基本包裝類型中有一句話> 對(duì)基本包裝類型的實(shí)例調(diào)用typeof會(huì)發(fā)揮“object”凉敲,而且所有基本包裝類型的對(duì)象都會(huì)被轉(zhuǎn)換為布爾值true衣盾。后半句不是很理解。
16荡陷、:first-child和:first-of-type區(qū)別
first-child:需要滿足是父元素的第一個(gè)子元素
first-of-type:該類型的第一個(gè)元素雨效,不一定要是第一個(gè)子元素