3

JavaScript onClick イベントを使用しています。IE/FF/Chrome ブラウザでは正常に動作しますが、Safari ブラウザでは動作しません。

私が使用しているコードは次のとおりです。

heartSelectHandler = {
    clickCount : 0,
    action : function(select)
    {
        heartSelectHandler.clickCount++;
        if(heartSelectHandler.clickCount%2 == 0)
        {
            selectedValue = select.options[select.selectedIndex].value;
            heartSelectHandler.check(selectedValue);
        }
    },
    blur : function() // needed for proper behaviour
    {
        if(heartSelectHandler.clickCount%2 != 0)
        {
            heartSelectHandler.clickCount--;
        }
    },
    check : function(value)
    {
       alert('Changed! -> ' + value);
    }
}

<select onclick="javascript:heartSelectHandler.action(this);" onblur="javascript:heartSelectHandler.blur()" id="heart" data-role="none">
    <?php for ($i = 20; $i <= 150; $i++): ?>
    <option  value="<?php echo $i; ?>"><?php echo $i; ?></option>
    <?php endfor; ?>
</select>
4

1 に答える 1

1

onclick の代わりに onchange を使用してください。これにより、純粋にキーボードを介した選択への変更も期待どおりにイベントをトリガーすることが保証されます (そうですか?)。

つまり、次を使用します。

onchange="javascript:heartSelectHandler.action(this);"

それ以外の:

onclick="javascript:heartSelectHandler.action(this);"
于 2012-07-06T06:06:45.500 に答える