0

イベント広告を削除してiPhoneのonClickイベント広告に置き換えるjQuery関数を備えたこのコードを見つけました。tap私はそれを機能させることができません。

onclick 以外の JavaScript を iPhone で実行するにはどうすればよいですか? 私はonChangeを試してみましたが、運もありません。

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>
4

1 に答える 1

0

次の行のようです。

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

は関数の代わりに文字列を渡します。これは、文字列がattr(). hereを使用して試すことができますがeval、それは本当にハックです。このような:

$(this).bind('tap', function() { eval(onclick); }); // Point taps to the onclick
于 2012-07-31T05:42:05.003 に答える