イベントをご利用いただけますonmouseout
。
フラグを設定して、少なくとも1つが選択されているかどうかを確認します。フラグがtrueの場合、イベントによってコードがトリガーされます。
を使用することもできます setTimeout
。そのため、マウスがタグ(onmouseover)に入ると、タイムアウトが削除され、1秒または2秒のイベントがトリガーされた後にマウスが終了します。これの利点は、ユーザーがまだ選択しているが突然マウスを外に出した場合、コードが数秒間トリガーされないことです。
更新、ここに例があります:
<!DOCTYPE>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
<script type="text/javascript">
var str = '';
var _ctrlPressed = false;
var my_timer;
var my_flag = false;
function set_timer(){
my_timer = setTimeout(selection_end, 2000);
}
function reset_timer(){
clearTimeout(my_timer);
}
function selection_end(){
if(_ctrlPressed && my_flag && str != ''){
my_flag = false;
alert('Selection is done: ' + str);
}
}
$(document).ready(function(){
$('ul > li').click(function(event){
if(event.ctrlKey){
_ctrlPressed = true;
}else{
_ctrlPressed = false;
}
if(_ctrlPressed){
str = str + $(this).text()+",";
my_flag = true;
return false;
}else{
str = $(this).text();
}
alert(str);
});
});
</script>
</head>
<body>
<ul onmouseover="reset_timer();" onmouseout="set_timer();">
<li>One</li>
<li>Two</li>
<li>Three</li>
<ul>
</body>
</html>