2011-10-03 65 views
0

我決定/測試光標跨瀏覽器的,至今在Firefox其工作完美,但在Chrome中 - 有些..的jQuery + CSS光標鼠標按下+鍍鉻=沒有工作

現在,自定義光標顯示,但是當你點擊某處時,它不會改變,它會觸發mousedown事件,但它不會更改光標。我嘗試了mousedown();並改變了光標。我猜mouseup事件正在造成這個麻煩。

$("body").mousedown(function() { 
    $("body").addClass("clicked"); 
    console.log("down"); 
}); 
$("body").mouseup(function() { 
    $("body").removeClass("clicked"); 
    console.log("up"); 
}); 

CSS

body { 
     cursor: url("../img/cursor1.cur"), default; 
    } 
    .clicked { 
     cursor: url("../img/cursor2.cur"), default; 
    } 
+0

那麼...... CSS是什麼樣的? – Pointy

+0

你想添加什麼光標?你可以發佈CSS嗎? – David

+0

@david添加了CSS。 – ncla

回答

0

我只是嘗試了以下工作:

$('body').mousedown(function(){ 
    $(this).css('background-color', 'red'); 
}); 
$('body').mouseup(function(){ 
    $(this).css('background-color', 'green'); 
}); 

是預期結果,點擊向下 - >紅BG,單擊了 - >綠BG

但是:這隻發生,當我分配的CSS:html, body { height:100%; min-height:100%; } 沒有CSS的偶數他們並不像真正的「流利」一樣工作。

小提示:請使用螢火蟲(至少鉻開發工具),可以監視使用以下剪斷事件:

monitorEvents( $$('body')[0]) 

希望這有助於

+0

我對鼠標事件沒有任何問題。但感謝您的幫助。 – ncla

+0

啊好的,那麼我有點誤解你的問題,但我必須承認我不真正瞭解你的CSS,爲什麼不分配一個:活動光標2? Wheres與body.clicked的感覺? – Sam

+0

我爲你更新了CSS,因爲我不理解你的問題。但它無論如何不會改變任何事情。 – ncla

0

的問題是,您使用的是全球window.event對象,而不是jQuery的事件對象。 window.event僅適用於某些瀏覽器,並不是W3C標準。

jQuery規範化事件對象,所以它在所有瀏覽器中都是一樣的。事件處理程序將該jQuery事件對象作爲參數傳遞。你應該使用它。

$(".class_name").mousedown(function (e) { 

    switch (e.which) { 
    case 1: //leftclick 
     //... 
     break; 
    case 3: //rightclick 
     //... 
     break; 
    } 
});