需求:選擇樹的節點時,會觸發某些事件。但是部分節點的處理比較特殊,不能選擇。另外,前台選擇的節點盡量不要跳來跳去。
幾個知識點:
treeview.beforeselect事件,可以取消選擇。
treeviewcanceleventargs e,e包含有屬性action、node、cancel。可以根據action來判斷beforeselect事件是由什麼操作觸發的。同樣,node獲取當前的節點,通過node的屬性值也可以判斷是否繼續往下執行。屬性cancel為true時,不會繼續往下執行。(注:至少不會出發afterselect事件)
e.action,是乙個列舉。有五個值:collapse、expand、unknown、bykeyboard、bymouse。稍微理解一下,可以知道collapse是摺疊節點時的狀態,expand對應展開節點操作,bykeyboard對應鍵盤選擇操作,bymouse對應滑鼠選擇操作,至於unknown,不全是但包含treeview.selectednode = tn;對treeview的selectednode屬性賦值時的狀態。
應用例項:當節點展開、摺疊,以及節點為第一級的節點(也就是沒有父節點)的情況下,取消選擇事件;而對selectednode賦值的情況,不取消事件,但是也不執行beforeselect事件中的其他**。
**如下:
//切換節點
void treeall_beforeselect(object
sender, treeviewcanceleventargs e)
//未知操作執行選擇,但不執行下面的act
if (e.action ==treeviewaction.unknown)
return
; action act = () =>;
if (true
) act();
}
取消事件冒泡
阻止事件冒泡 1.e.stoppropagation 方法 ie瀏覽器不可以 2.cancelbbubble true 屬性 ie瀏覽器 如下 function stopbubble e else 阻止冒泡和阻止預設事件 1.event.stoppropagation 方法 阻止事件的冒泡方法,但是...
取消冒泡事件
這也時從別人那copy來的。只不過是 自己打了一次。原文 在預設情況下,發生在乙個子元素上的單擊事件 或者其他事件 如果在其父級元素繫結了乙個同樣的事件,此時點選子元素,click事件會首先被子元素捕獲,執行繫結的事件程式,之後會被父級元素捕獲,再次激發一段指令碼的執行,這就是所謂的 事件冒泡 ob...
事件取消和阻止
取消冒泡 w3c標準 event.stoppropagation 但不支援ie9以下版本 ie獨有event.cancelbubble true 封裝 stopbubble event function stopbulle event else 阻止預設事件 預設事件 表單提交,a標籤跳轉,右鍵選單...