• js绑定带参数的事件以及手动触发事件


    1. html部分

    <div>
    <div id="tab">
    <h2>标题一</h2>
    <h2>标题二</h2>
    <h2>标题三</h2>
    <h2>标题四</h2>
    </div>
    <dl id="tabcon">
    <dd>内容一</dd>
    <dd>内容二</dd>
    <dd>内容三</dd>
    <dd>内容四</dd>
    </dl>
    </div>

    2. js部分

    <script type="text/javascript" defer="defer">
    var tab = document.getElementById("tab").getElementsByTagName("h2");
    function swap(n) {
    returnfunction() {
    for(var i=0; i<tab.length; i++) {
    document.getElementById(
    "tabcon"+ i).style.display ="none";
    document.getElementById(
    "tab"+ i).className ="";
    }
    document.getElementById(
    "tabcon"+ n).style.display ="block";
    document.getElementById(
    "tab"+ n).className ="focus";
    }
    }
    for(var i=0; i<tab.length; i++) {
    tab[i].setAttribute(
    "id", "tab"+ i);
    if(window.addEventListener) {
    tab[i].addEventListener(
    "mouseover", swap(i), false);
    }
    elseif(window.attachEvent) {
    tab[i].attachEvent(
    "onmouseover", swap(i));
    }
    }
    var tabcon = document.getElementById("tabcon").getElementsByTagName("dd");
    for(i=0; i<tabcon.length; i++) {
    tabcon[i].setAttribute(
    "id", "tabcon"+ i);
    }
    if(document.createEvent) {
    var evObj = document.createEvent('MouseEvents');
    evObj.initEvent(
    'mouseover', true, false);
    tab[
    0].dispatchEvent(evObj);
    }
    elseif( document.createEventObject) {
    tab[
    0].fireEvent('onmouseover');
    }
    </script>

    html代码与js分离,不干扰搜索引擎抓取
    兼容IE和Fx,其中没有on的事件是火狐下的写法

  • 相关阅读:
    C++11并发内存模型学习
    C++0x对局部静态初始化作出了线程安全的要求,singleton的写法可以回归到最原始的方式
    两次fopen不同的文件返回相同的FILE* 地址
    linux kernel kill jvm
    打印Exception信息
    java map value 排序
    java was started but returned exit code 1
    hive 建表语句
    hadoop mapreduce lzo
    分词 正文提取 java
  • 原文地址:https://www.cnblogs.com/bloodmage/p/1721139.html
Copyright © 2020-2023  润新知