我正在使用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>
答案 0 :(得分:1)
使用onchange而不是onclick,因为这样可以确保纯粹通过键盘对选择的更改也会按预期触发事件(对吗?)。
即。使用方法:
onchange="javascript:heartSelectHandler.action(this);"
而不是:
onclick="javascript:heartSelectHandler.action(this);"