[英]JavaScript OnClick not working on iOS
我已經開發了代碼,該代碼可以檢測用戶何時單擊表中的單元格,然后使用為該單元格設置的bgColor。
在台式機上一切正常,但是當我嘗試使用iPad時,它什么也沒做。 我嘗試使用touchstart,但這沒有什么區別。
我試圖改變這一點:
t[i].onclick = getVal;
為此:
t[i].addEventListener('touchstart', function(){getVal});
但這沒有用。...我還需要同時支持台式機和觸摸設備...。所以不確定如何在這種情況下同時支持這兩種設備。
我當前的代碼如下:
<script type="text/javascript">
function getVal(e) {
var targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
var colorSelected = targ.attributes.bgcolor.value;
alert(colorSelected);
}
onload = function()
{
var ids = ['colorchart1', 'colorchart2', 'colorchart3', 'colorchart4', 'colorchart5'];
for(var j = 0; j < ids.length; j++)
{
var t = document.getElementById(ids[j]).getElementsByTagName("td");
for ( var i = 0; i < t.length; i++ )
t[i].onclick = getVal;
}
}
</script>
<table id="colorchart1">
<tr>
<td bgColor="#F8E0E0"></td><td bgColor="#F8ECE0"></td><td bgColor="#F7F8E0"></td><td bgColor="#ECF8E0"></td>
<td bgColor="#E0F8E0"></td><td bgColor="#E0F8EC"></td><td bgColor="#E0F8F7"></td><td bgColor="#E0ECF8"></td><td bgColor="#E0E0F8"></td>
</tr><tr>
<td bgColor="#F5A9A9"></td><td bgColor="#F5D0A9"></td><td bgColor="#F2F5A9"></td><td bgColor="#D0F5A9"></td>
<td bgColor="#A9F5A9"></td><td bgColor="#A9F5D0"></td><td bgColor="#A9F5F2"></td><td bgColor="#A9D0F5"></td><td bgColor="#A9A9F5"></td>
</tr>
<table>
那這個句柄函數呢?
function handler(e){
e.target.nodeName!='TD'||alert(e.target.bgColor+' on '+
e.target.parentNode.parentNode.parentNode.id);
}
window.addEventListener('click',handler,false);
or
window.addEventListener('touchstart',handler,false);
演示
有多個表
http://jsfiddle.net/gfmbkmmn/1/
上面的函數是使用一個事件處理程序處理多個表的替代解決方案。 要找到您的錯誤,需要更多信息:
注意:在ios中,最好編寫window.onload
,“當前代碼”中的script
標簽呢,getVal函數是什么?
如果您對代碼有任何疑問,請問
編輯
function getVal(e){
e=e||window.event;//not needed
e.target=e.target||e.srcElement;//not needed
if(e.target.nodeName=='TD'){// check if it's a td
alert(e.target.bgColor);// why write 'targ.attributes.bgcolor.value' ?
}
}
節點錯誤來自7年前“ 7年前由...更改” 。http://bugs.jquery.com/ticket/1148
js區分大小寫: bgcolor != bgColor
http://jsfiddle.net/gfmbkmmn/2/這個基本示例可讓您創建快速的調色板。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.