整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          解決點擊事件在移動端失效的問題

          于on點擊事件在ios中失效的問題

          IPhone中H5頁面用on綁定click無效的解決方法

          關于jquery中on綁定click事件在蘋果手機失效的問題

          如果不用必須用click,則換成touch自然不存在本文的bug。

          當用如下方法綁定click事件時,

          下文的selector指的是你選擇的元素,可以用id或者class

          $(document).on('click','selector',function(){ });
          

          發現在PC各種瀏覽器,以及移動端模擬器上都是可以正常調試的,但是在ios的微信端訪問或瀏覽器訪問均有不同程度的無效情況,

          解決的方法很巧妙,就是給需要綁定事件的元素添加一個css

          頁中的選擇文件其實很簡單就一個文件選擇控件而已。

          <input type="file" id="file" name="file"/>

          其實用這個默認的顯示出來的樣子在網頁中不好看,常常我們為了美觀,可能會采用下面的方式來實現。

          首先將file隱藏起來。

          <input type="file" style="display: none;" id="file" name="file" >

          然后弄個文本框,弄個按鈕來進行文件選擇。

          <div class="input-group">

          <input type="text" id="file" name="codeFile" class="form-control" disabled="disabled">

          <span class="input-group-btn">

          <button type="button" class="btn" id="openFile">

          <span class="glyphicon glyphicon-folder-open" aria-hidden="true"></span>&nbsp;&nbsp;選擇...

          </button>

          </span>

          </div>

          這樣是不是比原始的效果要好看多了。

          那么file已經被隱藏了,點擊按鈕如何彈出選擇文件的框呢,用jquery來觸發file的單擊事件即可。

          $("#openFile").click(function(){

          $("#file").trigger("click");

          });

          我這邊想要在文件選擇完之后就馬上上傳文件到服務器,就只能在file的change事件中進行上傳了。

          $("#file").change(function(){

          //upload....

          });

          這樣確實可以實現上傳,問題是這種方式只有第一次選擇文件的時候可以,緊跟著第二次來選文件,會發現選中之后沒反應了,觸發不了change事件了。

          解決這問題的唯一辦法就是不要用jquery這種綁定事件的方法來實現change,直接在file中加上onchange即可。

          <input type="file" style="display: none;" id="file" name="file" onchange="upload()">

          題描述:

          web應用中,經常需要在圖片上添加相應的鏈接,而且相對于傳統的文字鏈接的方式,不僅美觀,而且有更大的可點擊區域。例如,京東網圖書頁面的一個簡單布局:

           
          
          1. <a title="畢業歌" target="_blank">
          2. <img width="130" height="130" src="http://www.jungjaehyung.com/uploadfile/2024/0808/20240808041141269.jpg">
          3. </a>

          這種情況是幾乎沒有任何問題的,但是,如果在img標簽之外,a標簽之內再添加一層元素(如div或者p標簽),在IE6,7下雖然能夠正常顯示鏈接,但是卻無法點擊。即使你給a標簽的樣式加上

          cursor:pointer;設置相應的高度和寬度,設置為display:block,依然是無法點擊的。如下所示的布局:

           
          
          1. <a target="_blank">
          2. <div class="a">
          3. <img src="test.jpg"/>
          4. </div>
          5. <div class="b">
          6. <img src="test.jpg"/>
          7. </div>
          8. </a>

          對應的樣式為:

           
          
          1. .a,.b{
          2. width:140px;
          3. height:140px;
          4. float:left;
          5. margin:10px 0 10px 10px;
          6. display:inline;
          7. }

          在IE6 ,7下,右鍵點擊可以顯示“在新標簽中打開鏈接”等選項,證明不是a鏈接無效。而且在兩圖片的margin的空白區域,是可以點擊的,只有圖片的區域卻無法點擊(也就是圖片區域的連接失效了)

          這是由于,在IE6,7中,由于觸發了img標簽的父元素的hasLayout屬性,從而使得父元素(這里是div元素)自己的布局掩蓋了a標簽的鏈接。這一點,我們可以通過禁用img父元素的樣式來證明:

           
          
          1. <a target="_blank">
          2. <div>
          3. <img src="test.jpg"/>
          4. </div>
          5. <div>
          6. <img src="test.jpg"/>
          7. </div>
          8. </a>

          這種布局下:圖片的區域是可以點擊的。

          具有hasLayout屬性的標簽(默認haslayout值為true):

          <html> <body> <table> <tr> <td> <td> <img> <hr> <input> <button> <select> <textarea> <fieldset> <legend><iframe> <embed> <object> <applet> <marquee>
          

          能夠觸發hasLayout的css屬性(樣式有):

          display:inline-block;

          float:left|right;

          width(height):除了auto之外的值。

          position:absolute;

          zoom:1 顯式開啟hasLayout。

          Ie7下觸發hasLayout的樣式屬性還有:

          min-width,min-height等。

          關于haslayout的更多細節,也可以參考這篇文章:

          http://www.jb51.net/web/77542.html

          知道了原因,針對以上的問題,解決的方案有:

          1.去掉img標簽的元div元素,將父元素的樣式遷移到img標簽上,布局如下:

           
          
          1. <a target="_blank">
          2. <img class="a" src="test.jpg"/>
          3. <img class="b" src="test.jpg"/>
          4. </a>

          2.保留div元素,但是去掉觸發haslayout的width和height屬性(實際上這樣只是保留了空架子)。如下

           
          
          1. <a target="_blank">
          2. <div>
          3. <img class="a" src="test.jpg"/>
          4. </div>
          5. <div>
          6. <img class="b" src="test.jpg"/>
          7. </div>
          8. </a>

          完整的測試代碼如下:

           
          
          1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh">
          3. <head>
          4. <title>關于 hasLayout</title>
          5. <style type="text/css">
          6. html,body,div,p,a,img{
          7. margin:0;
          8. border:0;
          9. }
          10. .wrapper{
          11. width:312px;
          12. text-align:center;
          13. margin:0 auto;
          14. margin-top:100px;
          15. border:1px solid red;
          16. }
          17. .a,.b{
          18. width:140px;
          19. height:140px;
          20. float:left;
          21. margin:10px 0 10px 10px;
          22. display:inline;
          23. }
          24. </style>
          25. </head>
          26. <body>
          27. <div class="wrapper">
          28. <a target="_blank">
          29. <div class="a">
          30. <img src="test.jpg"/>
          31. </div>
          32. <div class="b">
          33. <img src="test.jpg"/>
          34. </div>
          35. </a>
          36. </div>
          37. </body>
          38. </html>

          請在IE6,7下測試。


          主站蜘蛛池模板: 日韩精品无码久久一区二区三| 亚洲AV无码一区二区三区国产| 少妇精品无码一区二区三区| 亚洲av无码一区二区三区天堂古代| 欧美日本精品一区二区三区 | 精品无码综合一区| 精品视频在线观看一区二区| 国产一区中文字幕| 无码日韩AV一区二区三区| 精品国产一区二区三区久久影院| 无码囯产精品一区二区免费| 亚洲午夜电影一区二区三区| 精品一区二区三区3d动漫| 日韩经典精品无码一区| 中文字幕在线观看一区| 久久se精品动漫一区二区三区| 3d动漫精品啪啪一区二区中| 人体内射精一区二区三区| 精品国产乱子伦一区二区三区| 亚洲a∨无码一区二区| 成人精品一区二区不卡视频| 一区二区三区四区国产| 国产精品va无码一区二区| 亚洲丶国产丶欧美一区二区三区| 国产在线一区二区三区av| 久久精品国产一区| 精品国产免费观看一区| 亚洲中文字幕无码一区二区三区 | 国产成人无码AV一区二区| 国产亚洲综合一区柠檬导航 | 熟女大屁股白浆一区二区| 无码中文字幕一区二区三区 | 波多野结衣在线观看一区 | 一区二区三区四区视频| 精品在线一区二区三区| 亚洲av永久无码一区二区三区 | 国产综合无码一区二区色蜜蜜| 美女福利视频一区| 亚洲中文字幕丝袜制服一区 | 日本一区二区三区高清| 国产成人高清亚洲一区91|