2012-09-07 107 views
2

我試圖替換mouseup和mousedown事件上lastClick div的文本,但此代碼不起作用。有什麼建議麼?jQuery:mouseup和mousedown點擊處理程序

$('document').on(

{mousedown: function(){ $('#lastClick').html('down');}}, 

{mouseup: function(){$('#lastClick').html('up');}} 

); 

HTML

<body> 
<div id='lastClick'>not clicked yet!</div> 
</body> 

回答

3

試試這個:

$('#lastClick').on('mousedown', function() { 
    $(this).html('down'); 
}); 
$('#lastClick').on('mouseup', function() { 
    $(this).html('up'); 
});​ 

看到這個live example

+1

你意識到你可以鏈上'()'方法是什麼? –

3

刪除您的報價

$(document).on(

{mousedown: function(){ $('#lastClick').html('down');}}, 

{mouseup: function(){$('#lastClick').html('up');}} 

); 
+0

這很奇怪。這個頁面是以文檔$('document')引用的方式設置的。ready(function() – Leahcim

2

雖然Philippe's identified your problem(關於document的不必要的引號)我確實認爲你過於複雜的事情,儘管也許只是爲了展示你的問題。

$(document).on('mousedown mouseup', function(e){ 
    $('#lastClick').text(e.type); 
});​ 

JS Fiddle demo:但是,在這種情況下,你想在你的代碼做什麼可以被簡單地複製。

如果你確實需要的字符串,'up''down',那麼你可以用一個字符串操作修改上面的一點:

$(document).on('mousedown mouseup', function(e){ 
    $('#lastClick').text(e.type.replace('mouse','')); 
});​ 

JS Fiddle demo

+0

謝謝你,先生,我很佩服你的解決方案的優雅簡潔和強大。 – Leahcim

3

試試這個

HTML

<body> 
    <div id='lastClick'>not clicked yet!</div> 
</body> 

JS代碼

$(document).ready(function(){ 
    $('#lastClick').on(

    {mousedown: function(){ $(this).html('down');}}, 

    {mouseup: function(){$(this).html('up');}} 

); 
}); 
+0

@Michael是代碼工作嗎? – Codegiant

+0

是的,這個與JackTheRipper的回答相似,謝謝 – Leahcim