At least on FF, the mousedown event has a boolean property called ctrlKey:

$(...).bind('mousedown', function(event) {
 if(event.ctrlKey) {
   /* ctrl was down */
 } else {
   /* ctrl wasn't down */
 }
});

Not sure if that's cross browser or not. Be careful about using the ctrl key
as CTRL-clicking on stuff can already have special meaning (like opening in
a new tab in FF/Win or showing the right-click menu on OS X).

--Erik


On 5/24/07, zio budda <[EMAIL PROTECTED]> wrote:

Hi all. I'm newbie about jquery so sorry for the stupid question.

I have this code:

<html>
<head>
<script type="text/javascript" src="jquery-1.1.2.js">
<script>
</script>
</head>
<body>

<div id="contenitore" class="contenitoreC" style="border: 3px black
solid;float:left;" >
    <div id="sotto1" class="interno" style="border:2px red solid;
width:200px;height:200px; float:left;"></div>
    <div id="sotto2" class="interno" style="border:2px green solid;
width:200px;height:200px; float:left;"></div>
    <div id="sotto3" class="interno" style="border:2px blue solid;
width:200px;height:200px; float:left;"></div>
    <div id="sotto4" class="interno" style="border:2px yellow solid;
width:200px;height:200px; float:left;"></div>
    <div id="sotto5" class="interno" style="border:2px orange solid;
width:200px;height:200px;float:left;"></div>
</div>
<script type="text/javascript">
var _mousedown = -1;
var last = -1;
var lastlast = -1;
var now = -1;
var first = -1;
var shift = -1;
$(document).ready( function() {
    $('div.interno').hover(
        //IN
        function() {
            if (_mousedown == 0) {
                $(this).css('background','#999999');
                $(this).text('ippo');
                {
                    lastlast = last;
                    $('#divlastlast').text(lastlast)
                    last = now;
                    $('#divlast').text(last)
                    now = $(this).attr('id');
                    $('#divnow').text(now)
                    if (now == lastlast || now == first) {
                        $('#'+last).css('background','white');
                    }
                }
            }
        }
        ,
        //out Nulla da fare qui.
        function () {}
    );

    $('div.interno').mousedown( function () {
                    $(' div.interno').css('background','white');
                    _mousedown = 0;
                    $(this).css('background','#999999')
                    now = $(this).attr('id');
                    first = $(this).attr('id');
                    last = -1;
                    lastlast = -1;
                    $('#divfirst').text(now);
                    $('#divnow').text(now);
                    //alert($(this).attr('id'));
                    });
    //IF I uncomment this line keypress works
    //$(document).keypress(function(e) {alert(e.charCode);
$('#debug').text(' ');for (i in e) {$('#debug').append(' -- ' + i);}});
    $('div.interno').mouseup( function() {_mousedown = -1});
    $('#contenitore').keypress(function (e) {
                        alert('dentro');
                });
});
</script>
<br clear="all">
first:<div id="divfirst"></div>
now:<div id="divnow"></div>
last: <div id="divlast"></div>
lastlast:<div id="divlastlast"></div>
debug:<div id="debug"></div>
</body>

</html>

I want to realize this: when the user click into one of #sotto[1-5] div
and the "CTRL KEY" is pressed the div change his background color (In the
code I have set the click way only). But I  have a problem about how to
intercept the "CTRL KEY". I have thinked that
$('#contenitore').keydown() is "my friend", but it does not work. I have
tried the line that you see into the code, but I don't know why it does not
work with all key. Keypress works only on $(document).

Where is my error ?

Tnx.

M.
--
Michel 'ZioBudda' Morelli                       [EMAIL PROTECTED]
Consulenza sistemistica in ambito OpenSource.
Sviluppo applicazioni web dinamiche (LAMP+Ajax)
Telefono: +39-3939890025 --  Fax: +39-0291390660

http://www.ziobudda.net                         ICQ: 58351764
http://www.ziobuddalabs.it                      Skype: zio_budda
http://www.ajaxblog.it                          MSN: [EMAIL PROTECTED]

Reply via email to