简体   繁体   中英

User interaction with javascript?

I have the following code which allows a user to interact with a table to create a game of tic-tac-toe, how do I alter it to replace the 'X' and 'O' text with images instead? so that when the user clicks on a square an image is displayed instead of plain text ?

<!DOCTYPE html>
  <html>
  <head>
  <title>tic-tac-toe</title>
  <style>
     td { border: 1px solid black;
          width: 2em;
          height: 2em;
          margin: 0em;
          text-align: center;
          vertical-align: middle;
     }
     div.RedBG  { background-color: #f00; }
     td.BlueBG  { background-color: white; }
  </style>
  </head>
  <body>
  <center><table id="t1"></table></center>
  <div id="m1"></div>
  <script>
     var board = var board = [[0,0,0],[0,0,0],[0,0,0]];
     var free  = 9;
     var turn  = 0;

     function numToLetter(num) {
        switch (num) {
           case 0: return " "
           case 1: return "O"
           case 2: return "X"
        }
     }

     function clearMessage() {
        m1 = document.getElementById("m1");
        m1.style.display = "none";
     }

     function showMessage(message,style) {
        m1 = document.getElementById("m1");
        m1.innerHTML = message;
        m1.style.display = "block";
        m1.className = style;
     }
    ...

alter the numToLetter function to return a source for an image contained in td or to assign the source to the image...

i think returning the source would be easier and cleaner.

In that case: in the numToLetter calling code assign the source to the appropriate grid square...

function numToSource(num) {
    switch (num) {
       case 0: return "path/to/blank.png";
       case 1: return "path/to/O.png";
       case 2: return "path/to/X.png";
    }
 }

function assignImageSource(gridId, num){
      var element = document.getElementById(gridId);
      var source = numberToSource(num);
      element.src = source;  
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM