我有一個JavaScript函數,將運行並不會停止,一旦被激活,我需要完全停止該funcrtion和方式及其所有內容的事件末JavaScript函數及其所有內容
line.addEventListener('click', function() {
$(function(){
var canvasOffset=$("#canvas").offset();
var offsetX=canvasOffset.left;
var offsetY=canvasOffset.top;
window.alert(offsetX);
var startX;
var startY;
var isDown=false;
var canvas2 = $("#canvas");
function drawLine(toX,toY,context){
context.beginPath();
context.moveTo(startX, startY);
context.lineTo(toX,toY);
context.stroke();
}
function handleMouseDown(e){
e.preventDefault();
mouseX=parseInt(e.clientX-offsetX);
mouseY=parseInt(e.clientY-offsetY);
// save drag-startXY,
// move temp canvas over main canvas,
// set dragging flag
startX=mouseX;
startY=mouseY;
contextTemp.clearRect(0,0,canvasTemp.width,canvasTemp.height);
$("#canvasTemp").css({ left:0, top:0 });
isDown=true;
}
function handleMouseUp(e){
e.preventDefault();
if(!isDown){return;}
// clear dragging flag
// move temp canvas offscreen
// draw the user's line on the main canvas
isDown=false;
mouseX=parseInt(e.clientX-offsetX);
mouseY=parseInt(e.clientY-offsetY);
drawLine(mouseX,mouseY,context);
}
function handleMouseMove(e){
e.preventDefault();
if(!isDown){return;}
mouseX=parseInt(e.clientX-offsetX);
mouseY=parseInt(e.clientY-offsetY);
// clear the temp canvas
// on temp canvas draw a line from drag-start to mouseXY
contextTemp.clearRect(0,0,canvasTemp.width,canvasTemp.height);
drawLine(mouseX,mouseY,contextTemp);
}
canvas2.mousedown(function(e){handleMouseDown(e);});
canvas2.mousemove(function(e){handleMouseMove(e);});
canvas2.mouseup(function(e){handleMouseUp(e);});
canvas2.mouseout(function(e){handleMouseUp(e);});
}); // end $(function(){});
});
此功能需要停止對一個變量運行單擊如停止按鈕
但它不能停止所有其他功能運行
哪些功能需要停止運行? – ppoliani
你能解釋更多什麼是你的問題,我只是看到,有一個功能,執行一個點擊... –
你不能停止運行的功能,但可以使用一個標誌來確定是否需要執行或不。也許[jQuery的一個功能](http://api.jquery.com/one/)可以有所幫助。 – sroes