簡體   English   中英

如何防止所有錨標記的默認操作打開href URL

[英]How to prevent default action of all anchor tag from opening href URL

我想學習如何使用:

document.getElementById("myAnchor").addEventListener("click", function(event){
  event.preventDefault()
});

或任何其他方式來防止所有錨標記的默認操作使用核心 javascript 或縮小的 javascript 中的任何方式打開其中的 href URL,並在 EventListener 中打開 URL。

   var imgurl = "http:"+lcurl+touch_id+".jpg";
                     var data = "<div id=charm_"+touch_id+" data-charmid="+touch_id+" data-vis="+bgid+" data-vid="+seid+" data-vtitle="+vtitle_url+" data-title="+title_url+" style='float:left;' class='mdl-cell mdl-cell--4-col charm-wrapper'>\n\
                    <div class='mdl-card-wrapper charm-inner'>\n\
                      <div class='demo-card-wide mdl-card mdl-shadow--8dp'>\n\
                            <div class='mdl-card__media'>\n\
                            "+locicon+"\n\
                          <a id="myAnchor" href = '"+popupurl+"'>\n\
                          <div style='position:relative;'>\n\
                          <div style='position:absolute;z-index:9;right:0px;bottom:0px;'><img width=32px src="+cf_assets+"img/hanger.png></div>\n\
                           <div id=imagearea_"+touch_id+" title='"+title+"' class='imagearea loading'>\n\
                          </div></div></a>\n\
                        </div>\n\
                              <div class='mdl-card__title'>\n\
                        <div class='right-charm'>\n\
                         <div class='social-share'>\n\
                         "+copycontent+"\n\
                         "+watsapp+"\n\
                              <a onclick=sharetofb('"+ct_domain+socialshare_url+"'); title='Facebook' id=fb"+touch_id+" \n\
                      class='fb_share'></a>\n\
                    <a onclick=sharetotwitter('"+ct_domain+socialshare_url+"'); title='Twitter' id=tw"+touch_id+" class='tw_share'> </a>\n\
                              </div>\n\
                              </div>\n\
                              <div class='icharm'>\n\
                          <h2 class='mdl-card__title-text'>"+subtitle+"</h2>\n\
                          <div class='mdl-card__subtitle-text'>"+title+"</div>\n\
                          <div id=vid_"+touch_id+" class='mdl-card__subtitle-videoname'>"+videoname+"</div>\n\
                           </div>\n\
                            </div>\n\
                          </div>\n\
                      </div>\n\
                    </div>";
          $('#main-home-page-inner').add(HTML(data));
              callcloudinary(imgurl,title,touch_id);
              callmasonry();

          if(i == setarr.length-1){


             localStorage.touchids=touchid_arr.join(",");
            localStorage.searchresults=gcharmarr.join(",");
         }
         // document.getElementById("main-home-page-inner").innerHTML += html;

        }
        /* document.getElementById("fb"+touch_id).setAttribute("onclick","sharetofb('"+title+"','"+text+"','"+ct_domain+socialshare_url+"','"+social_domain+lcurl+touch_id+".jpg')");*/
      }
       document.getElementById("myAnchor").addEventListener("click", function (event) {

        event.preventDefault();
  openpopup('"+popupurl+"');
  sendpym('"+touch_id+"','0');

});
               })
               .error(function(status, statusText, responseText) {
                    //console.log(statusText);
                    //console.log(responseText);
               });

我會使用.getElementsByTagName()來獲取頁面上所有錨標記的數組,然后您可以循環遍歷這些,向您的問題中提到的添加一個類似的事件偵聽器。

我已經創建了一個小提琴,但要點是:

var test = document.getElementsByTagName("a");

for(i = 0; i < test.length; i++ ){
    test[i].addEventListener("click", function(e) {
        e.preventDefault();
    });
};

主要在React 中使用如下:

const = someEventHandeler = (event) => {
     event.preventDefault();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM