1.
function test() {
if(arguments.callee.clicked) return;
arguments.callee.clicked = true;
//code...
}
2.
var flag;
function test() {
if(flag) return;
flag = true;
//code...
}
Ну а когда нужно, то просто менять значение на false, чтобы ф-цию можно было снова запустить.