如何让iPhone在onClick事件上执行javascript

How can I make a iPhone to execute a javascript on a onClick event?

本文关键字:事件 执行 javascript onClick iPhone      更新时间:2024-06-01

我发现这段代码带有一个jQuery函数,可以删除onClick事件,并将其替换为tap,即使在iPhone中也是如此。我就是做不到。

我如何让iPhone执行onclick之外的JavaScript?我尝试改变,但也没有运气。

function rebindClicks(){
var userAgent = navigator.userAgent.toLowerCase();
var isIphone = (userAgent.indexOf('iphone') != -1) ? true : false;
if (isIphone) {
    // For each event with an inline onclick
    $('[onclick]').each(function() {
        var onclick = $(this).attr('onclick');
        $(this).removeAttr('onclick'); // Remove the onclick attribute
        $(this).bind("click", preventClickEvent); // See to it that clicks never happen
        $(this).bind('tap', onclick); // Point taps to the onclick
    });
}
}
function preventClickEvent(event)  {
event.preventDefault();
}
<select name="jumpMenu" class="tableBlackWhite" id="jumpMenu"   style="width:275px" onchange="MM_jumpMenu('parent',this,0)" >
    <option value="#"><font color="#FF0000" size="3">אנא בחר שיר להשמעה</font></option>
    <option onclick="javascript:ajax('/Songs/01.php','SongsContentArea')" value="#"> »  נייס באלמו</option>
    <option onclick="javascript:ajax('/Songs/02.php','SongsContentArea')" value="#"> »  מאתונו</option>
    <option onclick="javascript:ajax('/Songs/03.php','SongsContentArea')" value="#"> »  פיה אסי</option>
    <option onclick="javascript:ajax('/Songs/04.php','SongsContentArea')" value="#"> »  טליוסאמה</option>
  </select>

看起来像这行:

$(this).bind('tap', onclick); // Point taps to the onclick

正在传递字符串而不是函数,因为字符串来自attr()。你可以尝试在这里使用eval,但它真的很难。像这样:

$(this).bind('tap', function() { eval(onclick); }); // Point taps to the onclick