1) html屬性操做:attrjavascript
2) DOM屬性操做:propcss
3) 類樣式操做:addClass、removeClass、toggleClasshtml
4) 值操做:html(),text(),val()前端
append appendTo prepend prependTo after insertAfter before insertBeforevue
remove detach emptyjava
repacleWith replaceAll clonenode
mvc mtv mvvmjquery
補充: 26種設計模式 解耦 MVC(nodejs,django) MTV(django) MVVM (Vue) Model-Template(視圖)-Viewdef(視圖函數(驅動)) 先後端 markdown語法(本身去擴展) 16語法 標籤 ## 123 前端 127.0.0.1:8080/index url --url --template --index.html 後端 def indeDef(): //讀文件 with open... response render('index.html',response) //視圖函數 url('/index',indeDef) Model-View-Controler 模型數據 數據驅動視圖 *****數據不是憑空展現到視圖,是經過控制器(概念很大)驅動着數據渲染到視圖上 MVC <div>哈哈哈</div> $('div').click(function(){ $(this).css('color','red').text('葛大店'); });
1).width() .height()django
2) .innerWidth() .innerHeight()後端
3) .offset() --top width
4) .scrollTop() .scrollLeft()
5) .position()
document.body.addEventListener('click',fn);
document.body.removeEventListener('click',fn);
$('form').submit(function(event){
event.preventDefault();
..........
})
event.stopPropagation()
Event 對象表明事件的狀態,好比事件在其中發生的元素、鍵盤按鍵的狀態、鼠標的位置、鼠標按鈕的狀態。
1.何時會產生Event 對象呢?
例如: 當用戶單擊某個元素的時候,咱們給這個元素註冊的事件就會觸發,該事件的本質就是一個函數,而該函數的形參接收一個event對象
2.事件一般與函數結合使用,函數不會在事件發生前被執行!
屬性 | 描述 |
---|---|
altKey | 返回當事件被觸發時,」ALT」 是否被按下。 |
button | 返回當事件被觸發時,哪一個鼠標按鈕被點擊。 |
clientX | 返回當事件被觸發時,鼠標指針的水平座標。 |
clientY | 返回當事件被觸發時,鼠標指針的垂直座標。 |
ctrlKey | 返回當事件被觸發時,」CTRL」 鍵是否被按下。 |
metaKey | 返回當事件被觸發時,」meta」 鍵是否被按下。 |
relatedTarget | 返回與事件的目標節點相關的節點。 |
screenX | 返回當某個事件被觸發時,鼠標指針的水平座標。 |
screenY | 返回當某個事件被觸發時,鼠標指針的垂直座標。 |
shiftKey | 返回當事件被觸發時,」SHIFT」 鍵是否被按下 |
IE
屬性(除了上面的鼠標/事件屬性,IE 瀏覽器還支持下面的屬性)屬性 | 描述 |
---|---|
cancelBubble |
若是事件句柄想阻止事件傳播到包容對象,必須把該屬性設爲 true。 |
fromElement | 對於 mouseover 和 mouseout 事件,fromElement 引用移出鼠標的元素。 |
keyCode | 對於 keypress 事件,該屬性聲明瞭被敲擊的鍵生成的 Unicode 字符碼。對於 keydown 和 keyup |
offsetX,offsetY | 發生事件的地點在事件源元素的座標系統中的 x 座標和 y 座標。 |
returnValue |
若是設置了該屬性,它的值比事件句柄的返回值優先級高。把這個屬性設置爲 |
srcElement |
對於生成事件的 Window 對象、Document 對象或 Element 對象的引用。 |
toElement | 對於 mouseover 和 mouseout 事件,該屬性引用移入鼠標的元素。 |
x,y | 事件發生的位置的 x 座標和 y 座標,它們相對於用CSS動態定位的最內層包容元素。 |
屬性和方法 | 描述 |
---|---|
bubbles | 返回布爾值,指示事件是不是起泡事件類型。 |
cancelable |
返回布爾值,指示事件是否可擁可取消的默認動做。 |
currentTarget |
返回其事件監聽器觸發該事件的元素。 |
eventPhase | 返回事件傳播的當前階段。 |
target |
返回觸發此事件的元素(事件的目標節點)。 |
timeStamp | 返回事件生成的日期和時間。 |
type |
返回當前 Event 對象表示的事件的名稱。 |
initEvent() | 初始化新建立的 Event 對象的屬性。 |
preventDefault() |
通知瀏覽器不要執行與事件關聯的默認動做。 |
stopPropagation() |
再也不派發事件。 |
event || (event = window.event);
event.target||event.srcElement
event.preventDefault ? event.preventDefault() : (event.returnValue = false);
event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true);
1) 原理
利用冒泡的原理,把事件加到父級上,觸發執行效果。
2) 做用
(1) 性能好
(2) 針對新建立的元素,直接能夠擁有事件。
3) 跟this做用同樣(他不用看指向問題,誰操做的就是誰),event對象下的
4) 使用場景
爲DOM中的不少元素綁定相同事件;
爲DOM中尚不存在的元素綁定事件。
5) 句法格式,看例子。
on(type,selector,data,fn);
event.data
。
<body> <ul> <li class="luffy">路飛</li> <li>路飛</li> <li>路飛</li> </ul> </body> <script src="jquery-3.2.1.js"></script> <script type="text/javascript"> $(document).ready(function(){ //經過on()方法 $('ul').on('click','#namei,.luffy',function(){ console.log(this); }) //將來追加的元素 $('ul').append('<a id="namei">娜美</a>') } </script>
1) 綁定事件:
function handler(event) {
//event.data 能夠獲取bind()方法的第二個參數的數據
alert(event.data.foo);
}
$("p").bind("click", {foo: "bar"}, handler)
中間的數據參數是可選參數。
2) 取消綁定:
$("p").unbind() // 把全部段落的全部事件取消綁定
$("p").unbind('click') //將段落的click事件取消綁定
刪除綁定函數,有坑
var foo = function () {
//綁定事件和解綁事件的事件處理函數
};
$("p").bind("click mouseenter", foo); // 給p段落綁定click mouseenter事件
$("p").unbind("click", foo); // 只解綁了p段落標籤的click事件
3) 自定義事件
$('button').bind('myClick',function(ev,a,b){ //給button按鈕添加的自定義事件myClick事件 })
$('button').trigger('myClick',[1,2])
4)一次性試驗
$("p").one("click", function(){ //只有第一次點擊的時候纔會觸發,再次點擊不會觸發了 alert( $(this).text() ); });
1.數據雙向綁定初識Vue
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <form id='app'> <!-- 指令系統 --> <input type="text" name="" v-model='msg'> <!--模板語法插值--> <p>{{msg}}</p> <h1>{{msg2+'sb'}}</h1> <p>{{1==2?msg:msg2}}</p> </form> <script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script> <script > var app = new Vue( { el:'#app', data:{ msg:'哈哈', msg2:'sbdfff', } }) </script> </body> </html>
2.實時監聽輸入框內容
// 實施監聽輸入框內容的輸入
// $('.username')[0].oninput = function(e){
// console.log(e.target.value);
// $('.model').text(e.target.value);
// };
3.顯示一個簡單的時鐘:
<html> <head> <script type="text/javascript"> function startTime() { var today=new Date() var h=today.getHours() var m=today.getMinutes() var s=today.getSeconds() // add a zero in front of numbers<10 m=checkTime(m) s=checkTime(s) document.getElementById('txt').innerHTML=h+":"+m+":"+s t=setTimeout('startTime()',500) } function checkTime(i) { if (i<10) {i="0" + i} return i } </script> </head> <body onload="startTime()"> <div id="txt"></div> </body> </html>
4. 去空格函數。