Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript Background Change Colour

I am trying to learn Javascript on my own. So I gave myself a task: Create a button and with that button I can change the background colour. This is what I have done so far. I assume I don't need to run it under localhost like how we usually do PHP? I only drag the file to Google Chrome. So far, after clicking, it doesnt change colour at all. I also wonder why. Would be grateful if someone could point out my error

exe1.html

<html>
    <head>
    <link rel="stylesheet" href="layout.css">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
        $('.button').click(function(){
        $('body').css('background', '#' + changeColour());
});
});
        function changeColour() {
            return Math.floor(Math.random()*16777215).toString(16);
        }
    </script>
</head>
<body>
    <div class="buttonClickMe">
    <button type="button" onclick="changeColour">Click me</button>
    </div>
</body>

layout.css

button
 {
  background-color: red;
  width: 100px;
  height: 100px;
 }

body
 {
  text-align: center;
  background-color: blue;
 }
like image 767
ikanyu Avatar asked Mar 07 '26 14:03

ikanyu


2 Answers

Looks like you are trying to implement the click event in two ways:

as a HTML attribute

<button type="button" onclick="changeColour">

In order for this way to work, you should use changeColour as a function:

<button type="button" onclick="changeColour()">

via JS

$('.button').click(function(){ ...

This is the wrong selector for button (the . looks for elements by class name). Instead, use button:

$('button').click(function(){ ...

Either method will work and you only need one.

like image 157
Chris Tate Avatar answered Mar 10 '26 03:03

Chris Tate


This should work

 $(document).ready(function () {
                        $('.button').click(function () {
                            changeColour();
                        });
 });

function changeColour() {
                var col =  Math.floor(Math.random() * 16777215).toString(16);
                $('body').css('background', '#' + col);
}
like image 25
Legends Avatar answered Mar 10 '26 03:03

Legends



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!