Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
59
rated 0 times [  64] [ 5]  / answers: 1 / hits: 9052  / 5 Years ago, tue, november 5, 2019, 12:00:00

I have javascript of stopwatch i want to start stop with oracle apex button. i create button and create dynamic action with Execute Javascript expression and paste javasctipt but it doesn't run.



var x;
var startstop = 0;

function startStop() { /* Toggle StartStop */

startstop = startstop + 1;

if (startstop === 1) {
start();
document.getElementById(start).innerHTML = Stop;
} else if (startstop === 2) {
document.getElementById(start).innerHTML = Start;
startstop = 0;
stop();
}

}


function start() {
x = setInterval(timer, 10);
} /* Start */

function stop() {
clearInterval(x);
} /* Stop */

var milisec = 0;
var sec = 0; /* holds incrementing value */
var min = 0;
var hour = 0;

/* Contains and outputs returned value of function checkTime */

var miliSecOut = 0;
var secOut = 0;
var minOut = 0;
var hourOut = 0;

/* Output variable End */


function timer() {
/* Main Timer */


miliSecOut = checkTime(milisec);
secOut = checkTime(sec);
minOut = checkTime(min);
hourOut = checkTime(hour);

milisec = ++milisec;

if (milisec === 100) {
milisec = 0;
sec = ++sec;
}

if (sec == 60) {
min = ++min;
sec = 0;
}

if (min == 60) {
min = 0;
hour = ++hour;

}


document.getElementById(milisec).innerHTML = miliSecOut;
document.getElementById(sec).innerHTML = secOut;
document.getElementById(min).innerHTML = minOut;
document.getElementById(hour).innerHTML = hourOut;

}


/* Adds 0 when value is <10 */


function checkTime(i) {
if (i < 10) {
i = 0 + i;
}
return i;
}

function reset() {


/*Reset*/

milisec = 0;
sec = 0;
min = 0
hour = 0;

document.getElementById(milisec).innerHTML = 00;
document.getElementById(sec).innerHTML = 00;
document.getElementById(min).innerHTML = 00;
document.getElementById(hour).innerHTML = 00;

}


this is html code. this heading i added into static content. I think this fucntion need to call in button of oracle apex onclick=startStop()



<h1>
<span id=hour>00</span> :
<span id=min>00</span> :
<span id=sec>00</span> :
<span id=milisec>00</span>
</h1>

<button onclick=startStop() id=start>Start</button>
<button onclick=reset()>Reset</button>

More From » jquery

 Answers
-5

I'm not completely sure, because your problem description isn't 100% clear, but how is the dynamic action connected to your button?



You create the button with your HTML code, but that means the button does not exist before runtime and you can't assign the dynamic action to it in the page designer?



When is your javascript code triggered? Because I think that is the issue why your code is not beeing executed.



Answer:



If you want to generate the buttons like this, you need to initialize your functions for the whole page.



In the page designer click on your page on the left and then go to: JavaScript > Function and Global Variable Declaration on the right and there you have to declare your functions.



Now the button you create in your header, can use the startStop() function and will execute your code.



I haven't checked your code so I don't know if it will work as intended, but this way you can at least execute it.


[#5719] Saturday, November 2, 2019, 5 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
breap

Total Points: 606
Total Questions: 96
Total Answers: 108

Location: Djibouti
Member since Sun, Feb 27, 2022
2 Years ago
breap questions
Thu, Jun 24, 21, 00:00, 3 Years ago
Wed, Mar 18, 20, 00:00, 4 Years ago
Mon, Oct 7, 19, 00:00, 5 Years ago
Wed, Sep 18, 19, 00:00, 5 Years ago
;