Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 302|回复: 0

[AJAX学习]分离结构、表现和行为

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-13 01:50:47 | 显示全部楼层 |阅读模式
    WEB标准提倡结构、表现和行为相分离,下面是Jeremy Keith(英)写的一入门例子,对初学者有很好的指导作用。

    一、 gallery.HTML文件如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
       <meta http-equiv="content-type" content="text/html; charset=utf-8" />
       <title>Image Gallery</title>
       <script type="text/javascript" src="scripts/showPic.js"></script>
       <link rel="stylesheet" href="styles/layout.css" type="text/css" media="screen" />
    </head>
    <body>
       <h1>Snapshots</h1>
       <ul id="imagegallery">
       <li>
         <a href="images/fireworks.jpg" title="A fireworks display">
           <img src="images/thumbnail_fireworks.jpg" alt="Fireworks" /> </a>
       </li>
       <li>
        <a href="images/coffee.jpg" title="A cup of black coffee" >
          <img src="images/thumbnail_coffee.jpg" alt="Coffee" /> </a>
       </li>
       <li>
        <a href="images/rose.jpg" title="A red, red rose">
         <img src="images/thumbnail_rose.jpg" alt="Rose" /> </a>
       </li>
       <li>
         <a href="images/bigben.jpg" title="The famous clock">
          <img src="images/thumbnail_bigben.jpg" alt="Big Ben" /> </a>
       </li>
      </ul>
    </body>
    </html>

         看不到任何的JS和样式代码,gallery.html除了真正的HTML内容,只包含着一个由JavaScript脚本和CSS样式表共用的“挂钩”,这个“挂钩”就是图片清单的id属性(imagegallery).
      
      
       
       
         
       

         
       
      
       
    二、showPic.js
    1. function addLoadEvent(func) {
    2.   var oldonload = window.onload;
    3.   if (typeof window.onload != "function") {
    4.     window.onload = func;
    5.   } else {
    6.     window.onload = function() {
    7.       oldonload();
    8.       func();
    9.     }
    10.   }
    11. }
    12. function insertAfter(newElement,targetElement) {
    13.   var parent = targetElement.parentNode;
    14.   if (parent.lastChild == targetElement) {
    15.     parent.appendChild(newElement);
    16.   } else {
    17.     parent.insertBefore(newElement,targetElement.nextSibling);
    18.   }
    19. }
    20. function preparePlaceholder() {
    21.   if (!document.createElement) return false;//用对象检测技术,检查向后兼容性,看浏览器是否支持getElementById()方法
    22.   if (!document.createTextNode) return false;
    23.   if (!document.getElementById) return false;
    24.   if (!document.getElementById("imagegallery")) return false;
    25.   var placeholder = document.createElement("img");
    26.   placeholder.setAttribute("id","placeholder");
    27.   placeholder.setAttribute("src","images/placeholder.gif");
    28.   placeholder.setAttribute("alt","my image gallery");
    29.   var description = document.createElement("p");
    30.   description.setAttribute("id","description");
    31.   var desctext = document.createTextNode("Choose an image");
    32.   description.appendChild(desctext);
    33.   var gallery = document.getElementById("imagegallery");
    34.   insertAfter(placeholder,gallery);
    35.   insertAfter(description,placeholder);
    36. }
    37. function prepareGallery() {
    38.   if (!document.getElementsByTagName) return false;
    39.   if (!document.getElementById) return false;
    40.   if (!document.getElementById("imagegallery")) return false;
    41.   var gallery = document.getElementById("imagegallery");
    42.   var links = gallery.getElementsByTagName("a");
    43.   for ( var i=0; i < links.length; i++) {
    44.     links[i].onclick = function() {
    45.       return showPic(this);
    46.         }
    47.     links[i].onkeypress = links[i].onclick;
    48.   }
    49. }
    50. function showPic(whichpic) {
    51.   if (!document.getElementById("placeholder")) return true;
    52.   var source = whichpic.getAttribute("href");
    53.   var placeholder = document.getElementById("placeholder");
    54.   placeholder.setAttribute("src",source);
    55.   if (!document.getElementById("description")) return false;
    56.   if (whichpic.getAttribute("title")) {
    57.     var text = whichpic.getAttribute("title");
    58.   } else {
    59.     var text = "";
    60.   }
    61.   var description = document.getElementById("description");
    62.   if (description.firstChild.nodeType == 3) {
    63.     description.firstChild.nodeValue = text;
    64.   }
    65.   return false;
    66. }
    67. addLoadEvent(preparePlaceholder);
    68. addLoadEvent(prepareGallery);
    复制代码
    三、layout.css body {
      font-family: "Helvetica","Arial",serif;
      color: #333;
      background-color: #ccc;
      margin: 1em 10%;
    }
    h1 {
      color: #333;
      background-color: transparent;
    }
    a {
      color: #c60;
      background-color: transparent;
      font-weight: bold;
      text-decoration: none;
    }
    ul {
      padding: 0;
    }

    li {
      float: left;
      padding: 1em;
      list-style: none;
    }

    #imagegallery {
      list-style: none;
    } #imagegallery li {
      display: inline;
    } #imagegallery li a img {
      border: 0;
    }

      
      
       
       

         
       

         
       
      
    复制代码

    源码下载:http://file.javaxxz.com/2014/10/13/015046750.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-26 07:35 , Processed in 0.427925 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表