我正在尝试检测文件上传输入字段何时更新。 在IE& FF如果我使用blur(),我可以这样做但是对于Chrome我需要使用change()。 由于Chrome(我相信safari)不会触发blur事件,因此jquery.supports对象中有一个属性来检查这个或者我是否必须使用已弃用的.browser对象?
这是一个显示我的意思的示例页面,如下面的海报所示,所有三个浏览器都可以使用已更改的事件,这是我应该使用的但我认为对于检测支持的问题仍然有用模糊事件。
<html>
<head>
<script src="jquery-1.4.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#test-input').change(function () { alert('changed'); });
$('#test-input').blur(function () { alert('blurred'); });
});
</script>
</head>
<body>
<input type="file" id="test-input">
</body>
</html>
答案 0 :(得分:0)
如果您使用此功能支持您的活动,请尝试检测我无法理解的功能,但是我忘记了它的位置:
var isEventSupported = function(eventName) { //Function to detect supported events
var el = document.createElement('div');
eventName = 'on' + eventName;
var isSupported = (eventName in el);
if (!isSupported) {
el.setAttribute(eventName, 'return;');
isSupported = typeof el[eventName] == 'function';
}
el = null;
return isSupported;
}
之后定义一个包含你的/或事件的变量:
var ChangeOrBlur = (isEventSupported('blur')) ? 'blur' : 'change'; //with change as your default
然后将您的函数绑定到您预先存在的事件:
$('#test-input').bind(ChangeOrBlur, function(){alert(ChangeOrBlur);});
让我知道这对你有用...