最初学习的是手动触发事件,添加的是onmouseover,其中index是关键,tab标签与现实内容的div索引一一对应,遍历tab标签,当鼠标移动到某标签时,触发对应的内容div显示。
for(var i=0;i<img.length;i++){
img[i].index=i;
img[i].onmouseover=function(){
for(var i=0;i<img.length;i++){
img[i].className="";
content_div[i].className="content_div";
};
this.className="active";
content_div[this.index].className="content_div_active";
};
} 但是在需要添加定时器时,无函数可调用,基本思路应该是,编辑一个根据tab标签而切换内容的函数,调用分别为两处:onmouseover和setInterval中。上面代码写在遍历for循环里面,执行函数与i相关联,
如果单独抽出,其中变动的数字不知如何表达,网上查阅答案,发现可以使用传参的方式(好像在学习的初期,不太习惯使用函数传参,但是这样貌似能更加容易的解决问题) var img=document.getElementsByTagName("img");
var content_div=document.getElementsByClassName("content")[0].getElementsByTagName("div");
var index=0; for (var i = 0; i< img.length; i++)
{
img[i].index=i;
img[i].onmouseover=function()
{
autoChange(this); //点击到哪一个img,函数就对那个img执行。
};
}; function autoChange(obj){
if(!obj){ //obj为undefined,!obj为true。
obj = img[index]; //初始index为0;所以定时器由img[0]开始执行
if(index>=img.length-1) { //当index>=3,即循环到最后一个img时---->>>index=0,开始循环到第一个img
index = 0;
}else {
index++;
}
}
for (var i = 0; i< img.length; i++)
{
img[i].className="";
content_div[i].className="content_div";
};
obj.className="active";
content_div[obj.index].className="content_div_active";
} setInterval(autoChange,1000); //autoChange不带括号写入,表示将整个函数的方法写入,其中obj不传参。

选项卡切换:自动定时&主动触发事件的更多相关文章

  1. 主动触发事件 自定义事件 trigger 及其用法

    1. 触发自定义事件方式 js.jq 2. jq 触发 2.1 默认支持的事件 $('#h').on('click',function(){ $(this).append('<p>p< ...

  2. js jq 主动触发事件

    js的自定义事件与触发 //主动触发事件:触发鼠标被按下事件 var btn2 =document.getElementById("btn2"); var btn = docume ...

  3. JQuery 自己主动触发事件

    经常使用模拟 有时候,须要通过模拟用户操作,来达到单击的效果.比如在用户进入页面后,就触发click事件,而不须要用户去主动单击. 在JQuery中.能够使用trigger()方法完毕模拟操作.比如能 ...

  4. jQuery-1.9.1源码分析系列(十) 事件系统——主动触发事件和模拟冒泡处理

    发现一个小点,先前没有注意的 stopPropagation: function() { var e = this.originalEvent; ... if ( e.stopPropagation ...

  5. js简单自定义事件与主动触发事件

    var events = { addHandler: function (element, eventType, handler) { if (element.addEventListener) { ...

  6. 原生js自动触发事件

    熟悉jquery的童鞋都知道在jq中有一个方法可以自动触发事件,那就是trigger(),那么通过原生js又怎么模拟触发呢? js中添加一个主动触发事件的方法有dispatch.该方法能模拟用户行为, ...

  7. js和jquery中的触发事件

    改别人的坑,遇到jquery选择器和fireEvent混用,不认识fireEvent方法报错. js的方法不能使用jquery的选择器去调用. 1.fireEvent (IE上的js方法 ) 我们来看 ...

  8. c# TabControl控件中TabPage选项卡切换时触发的事件

    选项卡切换触发的是tabcontrol控件的SelectedIndexChanged事件. 当tabcontrol控件的任何一个tabpage被点击或选择,即发生SelectedIndexChange ...

  9. JQuery 自动触发事件

    JQuery 常用模拟 有时候,需要通过模拟用户操作,来达到单击的效果.例如在用户进入页面后,就触发click事件,而不需要用户去主动单击. 在JQuery中,可以使用trigger()方法完成模拟操 ...

随机推荐

  1. mybatis实战教程(mybatis in action)之二:以接口的方式编程

    前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询.请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句:session.select ...

  2. 学会使用notepad++

    官网地址:https://notepad-plus-plus.org/ 字体尺寸更改:ctrl+鼠标滚轮 主题:设置-语言格式设置,推荐Obsidian或者Zenburn主题,推荐Consolas 1 ...

  3. Mysql无法创建外键的原因

    在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

  4. 使用spring连接及操作mongodb3.0

    前边有一篇记录过不使用spring,直接在java代码中连接和操作mongodb数据库,这里就紧随其后记录一下使用spring的情况下,在java中简单操作mongodb.   maven导包配置: ...

  5. javascript判断某种元素是否进入可视区域

    判断是否在指定的可视区域内,先用最简单的方式,比如整个页面为可视区域 找到几个关键因素: sTop= $(window).scrollTop();  //滚动条距顶部的高度 clientHeight= ...

  6. NHibernate Demo 和 效率测试

    本文关于NHibernate的Demo和效率测试,希望对大家有用. 1.先去官网下载Nhibernate 2.放入到项目中并建立Helper类 private static ISession _Ses ...

  7. Hbase数据导入导出

    平时用于从生产环境hbase到导出数据到测试环境. 导入数据: import java.io.BufferedReader; import java.io.File; import java.io.F ...

  8. 关于语句#ifdef OS_GLOBALS #define OS_EXT #else #define OS_EXT extern #endif 的说明

    声明全局变量使用的技术——摘自uC/OS-II中文版 以下是如何定义全局 变量.众所周知,全局变量应该是得到内存分配且可以被其他模块通过C 语言中extern 关键字调用的变量.因此,必须在 .C 和 ...

  9. win上搭建react-native android环境

    http://www.jianshu.com/p/2fdc4655ddf8 http://www.lcode.org/ http://www.jianshu.com/p/ad29d97b0e9d 学习 ...

  10. dbms_output.put_line 不显示

    再写oracle sql时候,写循环语句,想知道循环对不对,使用dbms_output.put_line()没有打印出任何东西,网上查找发现少了一句. 加上 set serverouput on  就 ...