茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    js阻止默認(rèn)瀏覽器行為與冒泡行為的實(shí)現(xiàn)代碼
    來源:易賢網(wǎng) 閱讀:913 次 日期:2016-06-30 15:36:29
    溫馨提示:易賢網(wǎng)小編為您整理了“js阻止默認(rèn)瀏覽器行為與冒泡行為的實(shí)現(xiàn)代碼”,方便廣大網(wǎng)友查閱!

    下面小編就為大家?guī)硪黄猨s阻止默認(rèn)瀏覽器行為與冒泡行為的實(shí)現(xiàn)代碼。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。

    在前端開發(fā)工作中,由于瀏覽器兼容性等問題,我們會(huì)經(jīng)常用到“停止事件冒泡”和“阻止瀏覽器默認(rèn)行為”。

    1. 阻止瀏覽器的默認(rèn)行為

    function stopDefault(e) { 

    //如果提供了事件對(duì)象,則這是一個(gè)非IE瀏覽器 

    if(e && e.preventDefault) { 

      //阻止默認(rèn)瀏覽器動(dòng)作(W3C) 

      e.preventDefault(); 

    } else { 

      //IE中阻止函數(shù)器默認(rèn)動(dòng)作的方式 

      window.event.returnValue = false; 

    return false; 

    2. 停止事件冒泡

    function stopBubble(e) { 

    //如果提供了事件對(duì)象,則這是一個(gè)非IE瀏覽器 

    if(e && e.stopPropagation) { 

      //因此它支持W3C的stopPropagation()方法 

      e.stopPropagation(); 

    } else { 

      //否則,我們需要使用IE的方式來取消事件冒泡 

      window.event.cancelBubble = true; 

    return false; 

    具體應(yīng)用實(shí)例:寫好的一個(gè)項(xiàng)目,今天交給用戶使用,返回了一大堆問題,其中有一個(gè)很精典:

    一個(gè)頁面,有一個(gè)表單,用來提交表單的按鈕是個(gè)button,用jquery來響應(yīng)這個(gè)按鈕的點(diǎn)擊動(dòng)作,通過post提交,供用戶輸入的是一個(gè)文本框,用戶輸入完要填的東西之后,直接按回車鍵,就相當(dāng)于按了那個(gè)button,剛開始沒注意這個(gè)問題,一按回車,就跳轉(zhuǎn)到了另外一個(gè)頁面,查了很多資料,才發(fā)現(xiàn)要阻止瀏覽器的默認(rèn)行為,,因?yàn)镾UBMIT的默認(rèn)行為是提交表單,那么你的JS就不會(huì)執(zhí)行了。所以先取消默認(rèn)行為。然后執(zhí)行你的JQ來提交。具體的我也說不清楚,只知道若文本框的type="submit",直接點(diǎn)擊按鈕的時(shí)候就會(huì)跳到另外一個(gè)頁面,若type="button",則點(diǎn)擊按鈕的時(shí)候不會(huì)出現(xiàn)這樣的情況,可按回車鍵的時(shí)候會(huì)跳到另外一個(gè)頁面,解決方法,看下面代碼:

    <input type="text" name="appGrpName_s" id="appGrpName_s" onkeydown="enter_down(this.form, event);"/> 

    <script type="text/javascript"> 

    function enter_down(form, event) { 

    if(event.keyCode== "13") { 

    stopDefault(event); 

    submitForm(form,'actionDiv'); 

    function stopDefault(e) { 

    //如果提供了事件對(duì)象,則這是一個(gè)非IE瀏覽器 

    if(e && e.preventDefault) { 

      //阻止默認(rèn)瀏覽器動(dòng)作(W3C) 

      e.preventDefault(); 

    } else { 

      //IE中阻止函數(shù)器默認(rèn)動(dòng)作的方式 

      window.event.returnValue = false; 

    return false; 

    </script> 

    通過上面的代碼就可以實(shí)現(xiàn)按回車的時(shí)候相當(dāng)于點(diǎn)擊“提交”按鈕。且上面的代碼兼容IE、FF瀏覽器。

    有時(shí)候遇到需要屏蔽瀏覽器的一些快捷鍵行為時(shí),比如說:ff下按Backspace鍵,會(huì)跳到上一個(gè)瀏覽器的歷史記錄頁面;

    注意要在onkeydown事件中調(diào)用stopDefault(event)函數(shù),在onkeyup事件中調(diào)用是不成功的。

    <span style="color: rgb(51, 153, 51);"><</span>a onclick<span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(51, 102, 204);">"toggleFriendFuncList(event, '6708062', 'he');"</span><span style="color: rgb(51, 153, 51);">></</span>a<span style="color: rgb(51, 153, 51);">></span>

    由于href是空值,如果不阻止瀏覽器的默認(rèn)行為,產(chǎn)生的效果就是刷新頁面。

    現(xiàn)在我們需要做的就是阻止href的鏈接事件,而去執(zhí)行onclick事件。

    老的處理方式:

    <span style="color: rgb(51, 153, 51);"><</span>a onclick<span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(51, 102, 204);">"toggleFriendFuncList(event, '6708062', 'he');"</span> href<span style="color: rgb(51, 153, 51);">=</span><span style="color: rgb(51, 102, 204);">"javascript:void(0);"</span><span style="color: rgb(51, 153, 51);">></</span>a<span style="color: rgb(51, 153, 51);">></span>

    jquery的寫法:

    1)return false :In event handler ,prevents default behavior and event bubbing 。

    return false 在事件的處理中,可以阻止默認(rèn)事件和冒泡事件。

    2)event.preventDefault():In event handler ,prevent default event (allows bubbling) 。

    event.preventDefault()在事件的處理中,可以阻止默認(rèn)事件但是允許冒泡事件的發(fā)生。

    3)event.stopPropagation():In event handler ,prevent bubbling (allows default behavior).

    event.stopPropagation()在事件的處理中,可以阻止冒泡但是允許默認(rèn)事件的發(fā)生

    prototype的寫法:

    Event.stop(event)

    用法介紹:

    事件發(fā)生后,瀏覽器通常首先觸發(fā)事件發(fā)生元素上的事件處理程序,然后是它的父元素,父元素的父元素……依此類推,直到文檔的根元素為止。這被稱為 事件冒泡,是事件傳播的最常見的方式。當(dāng)處理好一個(gè)事件后,你可能想要停止事件的傳播,不希望它繼續(xù)冒泡。

    當(dāng)你的程序有機(jī)會(huì)處理事件時(shí),如果這個(gè)事件具有 默認(rèn)行為,同時(shí)瀏覽器也會(huì)處理它。例如,點(diǎn)擊導(dǎo)航鏈接、將表單提交到服務(wù)器、在一個(gè)單行文本框中按下回車鍵等等。如果對(duì)這些事件你定義了自己的處理方式,可能會(huì)非常希望阻止相關(guān)的默認(rèn)行為。

    但是,有時(shí)候還是不能解決相應(yīng)的問題,明明已經(jīng)調(diào)用了阻止瀏覽器默認(rèn)行為的方法,可在按回車的時(shí)候還是會(huì)調(diào)用默認(rèn)行為,最終也沒有找到問題所在,只好把回車鍵禁用了,實(shí)際上是用Tab鍵代替回車鍵。代碼如下:

    <script language="javascript" event="onkeydown" for="document"> 

    //若為回車鍵 

    if ( event.keyCode == 13 ) { 

    //改成Tab鍵,這樣每次按回車都起到了Tab的功效,光標(biāo)跳到下一個(gè)對(duì)象 

    event.keyCode = 9; 

    </script> 

    <script language="javascript" type="text/javascript"> 

    //禁用Enter鍵表單自動(dòng)提交 

    document.onkeydown = function(event) { 

    var target, code, tag; 

    if (!event) { 

    event = window.event; //針對(duì)ie瀏覽器 

    target = event.srcElement; 

    code = event.keyCode; 

    if (code == 13) { 

    tag = target.tagName; 

    if (tag == "TEXTAREA") { return true; } 

    else { return false; } 

    else { 

    target = event.target; //針對(duì)遵循w3c標(biāo)準(zhǔn)的瀏覽器,如Firefox 

    code = event.keyCode; 

    if (code == 13) { 

    tag = target.tagName; 

    if (tag == "INPUT") { return false; } 

    else { return true; } 

    }; 

    </script> 

    具體用法試?yán)?/P>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 

    <%@ include file="/pages/common/global.jsp"%> 

    <html> 

    <head> 

    <title>腳本之家</title> 

    <meta http-equiv="pragma" content="no-cache"> 

    <meta http-equiv="cache-control" content="no-cache"> 

    <meta http-equiv="expires" content="0"> 

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 

    <script> 

    function gotoPage(currentPage,form) { 

    goto_Page(currentPage,form,"actionDiv"); 

    function addAppGrp(){ 

    $("#actionDiv").load("${contextPath }/pages/manage/business/add.jsp"); 

    $("#chance_search_div").hide(); 

    function modifyAppGrp(idName){ 

    var id=encodeURIComponent(idName); 

    var url = contextName + "/appGrpAction.do?method=addAppGrp&appGrpName="+id; 

    retrieveURL(url,'actionDiv'); 

    $("#chance_search_div").hide(); 

    function savebusiness(thisForm){ 

    var name = $("#appGrpName").val(); 

    if(name.trim()==""){ 

    alert("分組名稱不能為空。"); 

    return; 

    submitForm(thisForm,null,afterSave); 

    return ; 

    function afterSave(content){ 

    if(content!=null&&content!=""){ 

    var arr = content.split(","); 

    if(arr[0]=="true"){ 

    $("#chance_search_div").show(); 

    //當(dāng)前結(jié)點(diǎn) 

    var itemId = "0::" + $("#appGrpName").val(); 

    //父結(jié)點(diǎn),因?yàn)橹挥刑砑痈鶓?yīng)用分組時(shí)才會(huì)執(zhí)行這個(gè)方法,所以父結(jié)點(diǎn)統(tǒng)一為-1 

    var parentId = -1; 

    //當(dāng)前結(jié)點(diǎn)顯示名稱 

    var itemText = $("#appGrpName").val(); 

    //添加新結(jié)點(diǎn) 

    tree.insertNewChild(parentId, itemId, itemText, doOnClick, 'myfolderClosed.gif' ,'myfolderOpen.gif','myfolderClosed.gif'); 

    retrieveURL("${contextPath}/appGrpAction.do?method=appGrpList","actionDiv"); 

    return; 

    alert(arr[1]); 

    return; 

    alert("保存失敗"); 

    return; 

    function deleteBusiness(thisForm,idName){ 

    if(confirm("確認(rèn)要?jiǎng)h除么?")){ 

    var id=encodeURIComponent(idName); 

    retrieveURL("${contextPath}/appGrpAction.do?method=deleteAppGrp&appGrpName=" + id,null,null,function(content){ 

    if(content!=null&&content!=""){ 

    var arr = content.split(","); 

    if(arr.length==3&&arr[2]=='y'){ 

    var msg = "該應(yīng)用組下有應(yīng)用,要強(qiáng)制刪除么?"; 

    if(confirm(msg)){ 

    retrieveURL("${contextPath}/appGrpAction.do?method=forceDelAppGrp&appGrpName="+id,null,null,afterForceDel); 

    return; 

    if(arr.length==2){ 

    if(arr[0]=="true"){ 

    //當(dāng)前結(jié)點(diǎn) 

    itemId = "0::" + idName; 

    tree.deleteItem(itemId); 

    retrieveURL("${contextPath}/appGrpAction.do?method=appGrpList","actionDiv"); 

    return; 

    alert(arr[1]); 

    return; 

    alert("刪除失敗"); 

    return; 

    }); 

    return ; 

    function afterForceDel(){ 

    if(content!=null&&content!=""){ 

    var arr = content.split(","); 

    if(arr[0]=="true"){ 

    monitorTree(); 

    retrieveURL("${contextPath}/appGrpAction.do?method=appGrpList","actionDiv"); 

    return; 

    alert(arr[1]); 

    return; 

    alert("保存失敗"); 

    return; 

    function enter_down(form, event) { 

    if(event.keyCode== "13") { 

    stopDefault(event); 

    submitForm(form,'actionDiv'); 

    function stopDefault(e) { 

    //如果提供了事件對(duì)象,則這是一個(gè)非IE瀏覽器 

    if(e && e.preventDefault) { 

      //阻止默認(rèn)瀏覽器動(dòng)作(W3C) 

      e.preventDefault(); 

    } else { 

      //IE中阻止函數(shù)器默認(rèn)動(dòng)作的方式 

      window.event.returnValue = false; 

    return false; 

    </script> 

    </head> 

    <body> 

    <table style="width: 100%; align: center;"> 

    <tr> 

    <td style="text-align:left;"> 

    <div id="chance_search_div"> 

    <html:form action="appGrpAction.do?method=appGrpList"> 

    <table class="form_t"> 

    <tr> 

    <th class="tablelogo"> 查詢 

    <input type="hidden" name="hidden_s" value="1" /> 

    </th> 

    </tr> 

    <tr> 

    <td style="text-align: left; padding-left: 50px;"> 

    <br /> 

    名稱 

    <input type="text" name="appGrpName_s" id="appGrpName_s"

    onblur="javascript:isSpecialChar(this);" onkeydown="enter_down(this.form, event);"/> 

    <input type="button" class="button4C" value="查 詢"

    onclick="javascript:submitForm(this.form,'actionDiv');" /> 

    <input type="button" value="添 加" class="button4C" onclick="javascript:addAppGrp();"/> 

    <br /> 

    </td> 

    </tr> 

    </table> 

    </html:form> 

    </div> 

    <div id="actionDiv"></div> 

    </td> 

    </tr> 

    </table> 

    <script><!-- 

    $("#actionDiv").load("${contextPath }/appGrpAction.do?method=appGrpList&random=" + Math.random()); 

    --></script> 

    </body> 

    </html> 

    以上這篇js阻止默認(rèn)瀏覽器行為與冒泡行為的實(shí)現(xiàn)代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報(bào)班

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)