主页 个人前端笔记 自定义Javascript轻量级前端开发库
admin
发表于2012-11-11 19:14:52    只看楼主 楼主
头衔:  精益求精
注册时间: 2012-10-07
用户组: 日常管理组
发帖数:  502
金币数:  186
短消息
$_custom.js

function $_custom(fun)
{
document.onreadystatechange = function()
{
if (document.readyState == "complete")
{
fun();
}
}
}
function $(val){
if(val.indexOf("#")==0)
{
var ob=new Array();
var obj=document.getElementById(val.substring(1));
ob.push(obj);
custom.call(ob);
return ob;
}
if(val.indexOf(".")==0)
{
var obj=document.getElementsByTagName("*");
var ob=new Array();
for(var x in obj)
{
if(obj[x].className==val.substring(1))
{
obj2=obj[x];
ob.push(obj2);
}
}
custom.call(ob);
return ob;
}
}
var custom=function(){
var actions=["click","blur","focus","mouseout","mouseover","change"];
//样式处理
this.css=function(param){
for(var i = 0;i < this.length;i++)
{
for(var key in param)
{
this[i].style[key]=param[key];
}
}
};
var _this=this;
//函数处理
(function(){
for(var k in actions){
var _o=actions[k];
_this[_o]= function(){
var _oo=_o;
return function(fun)
{
for(var i = 0;i < _this.length;i++)
{
_this[i]["on"+_oo]=function(event)
{
fun(event);
}
}
}
}(_o);
}
})(actions);
//还原javascript基本写法
this.revert=function(){
if(_this.length==1)
{
return _this[0];
}
else{
alert(′Does not support!′);
console.log(′Does not support!′);
}
};
//模拟鼠标事件
this.similar=function(actions){
if(document.all) {
_this[0][actions]();
}
else {
var e = document.createEvent("MouseEvents");
e.initMouseEvent(actions, true, true);
_this[0].dispatchEvent(e);
}
};
//绑定事件
this.bind=function(actions,fun){
if(document.all) {
for(var i = 0;i < _this.length;i++)
_this[i].attachEvent("on"+actions,function(){fun.call(_this[i])});
}else{
for(var i = 0;i < _this.length;i++)
_this[i].addEventListener(actions,fun);
}
}
}

使用方法介绍

样式处理

<script type="text/javascript" src="$_custom.js"></script>
<script type="text/javascript">
$_custom(function(){
$("#sp").css({width:"100px",height:"100px",border:"1px solid red"});
$(".sp2").css({width:"100px",height:"100px",border:"1px solid red"});
})</script>
<div id="sp">test</div>
<div class="sp2">test</div>
<div class="sp2">test</div>

事件处理

//支持的事件在actions数组里拓展
$("#sp").click(function(){
alert(′test′);
})

原始写法

$("#sp").revert().style.display=′none′;

模拟鼠标事件

$("#sp").click(function(){
alert(′clicked′);
})
$("#sp").similar("click");
//这样刚进入网页即运行点击事件了

事件绑定

$("#sp").bind("click",function(){
alert(′you click′);
})

获取鼠标位置

$("#sp").click(function(){
alert(event.x);
})
//event参数可直接支持调用,可以阻止事件冒泡等,不信试试吧
 
卜卜口の
发表于2012-12-20 15:43:26 1楼
头衔:  新手上路
注册时间: 2012-12-20
用户组: 普通用户
发帖数:  1
金币数:  100
短消息
不是Jquery么?
 
admin
发表于2012-12-21 08:27:13 2楼
头衔:  精益求精
注册时间: 2012-10-07
用户组: 日常管理组
发帖数:  502
金币数:  186
短消息
卜卜口の  发表于  2012-12-20 15:43:26不是Jquery么?......

不是,只是写法上类似,模拟jquery的写法而已

回复人
回复内容

Powered BY YouYaX
个人自主开发论坛,从2010年10月份开发至今!

操作管理