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

使用 onchange 而不是 onclick,因为这将确保纯粹通过键盘对选择的更改也会按预期触发事件(对吗?)。

即使用:

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

代替:

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