号称史上最小的javascript的封装库,高效简洁,易用性强,易拓展,大小仅1KB,你没看错,是1KB,不才,由本人原创,提供分享。。。

狄默默斯基 2012-02-03 02:09:41

//$_custom.js
function $_custom(fun)
{
document.onreadystatechange = function()
{
if(document.readyState == "complete")
{
fun();
}
}
}
function $(val){
if(val.indexOf("#")==0)
{
var obj=document.getElementById(val.substring(1));
custom.call(obj);
return obj;
}
if(val.indexOf(".")==0)
{
var obj=document.getElementsByTagName("*");
for(var x in obj)
{
if(obj[x].className==val.substring(1))
{
custom.call(obj[x]);
return obj[x];
}
}
}
}
//函数自定义处理
var custom=function(){
this.css=function(param){
for(var key in param)
{
this.style[key]=param[key];
}
};
this.click=function(fun){
this.onclick=function()
{
fun();
}
};
this.blur=function(fun){
this.onblur=function()
{
fun();
}
};
this.focus=function(fun){
this.onfocus=function()
{
fun();
}
};
this.change=function(fun){
this.onchange=function()
{
fun();
}
};
this.mouseover=function(fun){
this.onmouseover=function()
{
fun();
}
};
this.mouseout=function(fun){
this.onmouseout=function()
{
fun();
}
};
//此处省略事件拓展
}




使用方法介绍
<script type="text/javascript" src="$_custom.js"></script>
<script type="text/javascript">
$_custom(function(){
$("#sp").css({"width":"250px","height":"250px","border":"1px solid green","background":"#333333"});
$(".sp2").mouseover(function(){
$(".sp2").css({"width":"450px","height":"250px","border":"1px solid green","background":"#333333"});
})
})
<div id="sp">test</div>
<div class="sp2">test</div>
...全文
365 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
root_lee 2012-02-06
  • 打赏
  • 举报
回复
楼主加油!
狄默默斯基 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 foolbirdflyfirst 的回复:]

#3被你直接忽略了,不要用覆盖式的事件分配,使用addEventListener注意dom事件流,指定冒泡式还是捕获式

$('#sp').click(function(){alert(1)})
$('#sp').click(function(){alert(2)})
这两句看看你的代码,和jquery或者和任何一款成熟框架的运行结果有何区别。
[/Quote]

<script type="text/javascript">	
$_custom(function(){
$("#sp").click(function(){
alert('you click sp');
});
$("#sp2").click(function(){
alert('you click sp2');
if(document.all)
{
event.cancelBubble = true;
}
else
{
event.stopPropagation();
}
})
})
</script>
<div id="sp" style="width:100px;height:100px;border:1px solid red">
<div id="sp2" style="width:50px;height:50px;border:1px solid red"></div>
</div>


对你的说法不以为然,不懂什么分配覆盖之类的这么多大概念,实用才是硬道理,经过实践证明,事件冒泡完全对框架没影响,可以event参数阻止。。

还有你说的2个语句,jquery我试过弹出2次1,我的是只有1次

弹出2次我不认为是对的,弹出一次说明后面的方法覆盖前面的方法,不知道弹出2次得这种功能用在什么地方。
document.getElementById("sp").onclick=function(){alert(1)};

document.getElementById("sp").onclick=function(){alert(1)};
原始的js代码也是后面覆盖前面的。。怀疑jq的正确性了要
  • 打赏
  • 举报
回复
用百度的七巧板吧
relucent 2012-02-06
  • 打赏
  • 举报
回复
高仿jq? 看起来只是外观形似。

对比之下感觉不如直接用原生的js。
狄默默斯基 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 foolbirdflyfirst 的回复:]

#3被你直接忽略了,不要用覆盖式的事件分配,使用addEventListener注意dom事件流,指定冒泡式还是捕获式

$('#sp').click(function(){alert(1)})
$('#sp').click(function(){alert(2)})
这两句看看你的代码,和jquery或者和任何一款成熟框架的运行结果有何区别。
[/Quote]

什么意思啊,没看出问题,框架基本上十全十美是不可能的,当达不到一些要求时或很复杂时可以用原始的js语句书写
CaiKanXP 2012-02-06
  • 打赏
  • 举报
回复
楼主亲身证明了jq的伟大
foolbirdflyfirst 2012-02-06
  • 打赏
  • 举报
回复
#3被你直接忽略了,不要用覆盖式的事件分配,使用addEventListener注意dom事件流,指定冒泡式还是捕获式

$('#sp').click(function(){alert(1)})
$('#sp').click(function(){alert(2)})
这两句看看你的代码,和jquery或者和任何一款成熟框架的运行结果有何区别。
狄默默斯基 2012-02-06
  • 打赏
  • 举报
回复
请关注21楼,最新版本。。。
狄默默斯基 2012-02-06
  • 打赏
  • 举报
回复
今日拓展版,主要增加了功能如下
1、还原javascript原始写法切换
2、模拟鼠标事件
3、绑定事件,响应上面某一楼的要求


//$_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);
}
}
}


使用方法介绍
1.还原写法

<script type="text/javascript" src="$_custom.js"></script>
<script type="text/javascript">
$_custom(function(){
$("#sp").revert().style.cssText="width:100px;height:100px;border:1px solid red;";
$("#sp").revert().innerHTML="this is a test...";
</script>
<div id="sp">test</div>

2、模拟鼠标事件

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

3、事件绑定

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


4、获取鼠标位置

$("#sp").click(function(){
alert(event.x);
})
//event参数可直接支持调用,不信试试吧


此贴要火起来,,有什么好功能,欢迎大家来拓展。。。
黑白灰 2012-02-06
  • 打赏
  • 举报
回复
北京不不 2012-02-06
  • 打赏
  • 举报
回复
高效简洁,易用性强,易拓展,大小仅1KB,你没看错,就是1KB。还在等什么,打电话订购吧,发行1000套,只有1000套。
mumubangditu 2012-02-05
  • 打赏
  • 举报
回复
纯粹观摩学习,10楼言论意义深刻。
狄默默斯基 2012-02-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 mumubangditu 的回复:]

纯粹观摩学习,10楼言论意义深刻。
[/Quote]

观摩6楼的,1楼是错的,谁一不小心用了出错,后果自负。
狄默默斯基 2012-02-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 g125989100 的回复:]

没看完。。看别人代码太痛苦了。。。
[/Quote]

哈哈,说明我的代码还是稍微有点深度的,不那么浅显
pbw15 2012-02-05
  • 打赏
  • 举报
回复
还有这么强大的功能啊。。
狄默默斯基 2012-02-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zswang 的回复:]

差距还是相当大的。楼主加油
[/Quote]

差距大是因为不想写了,再写下去就真的变jq了,还不如直接jq,就支持简单选择器样式,常用事件处理
狄默默斯基 2012-02-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 crazywa 的回复:]

。。。楼主应该多上 蓝色理想 去求打击。。
[/Quote]

那个蓝色理想的论坛风格实在让人不想去啊,二次开发也开得漂亮点嘛
狄默默斯基 2012-02-04
  • 打赏
  • 举报
回复
此贴要火起来。。。。
狄默默斯基 2012-02-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hch126163 的回复:]

短小精干。不错!

添加事件,用
function bindEvent(obj,evt,fun)
{
if(window.addEventListener){
obj.addEventListener(evt, function(e){ fun(e);},false);
}else{
obj.attachEven……
[/Quote]

不懂了吧,看我的类库有一个什么特点,,就是高仿真jquery,so 一旦达不到项目需求,可以立刻加载jquery,而不必要改动任何javascript语句。。
hch126163 2012-02-04
  • 打赏
  • 举报
回复
短小精干。不错!

添加事件,用
function bindEvent(obj,evt,fun)
{
if(window.addEventListener){
obj.addEventListener(evt, function(e){ fun(e);},false);
}else{
obj.attachEvent('on'+evt,fun);
}
};
这样就更好了
加载更多回复(8)
内容概要:本文提出一种基于鱼鹰优化算法(OOA)优化的CNN-BiGUR-Attention混合模型,用于提升短期风电功率预测的精度与稳定性,采用Matlab实现代码仿真。该模型融合卷积神经网络(CNN)提取输入数据的局部空间特征,利用双向门控循环单元(BiGUR)捕捉风速、功率等时间序列的前后向动态依赖关系,并引入注意力机制自适应化关键时间步的特征权重,从而增模型对非平稳风电数据的表征能力;进一步,采用OOA算法对模型超参数进行全局寻优,有效提升模型收敛速度与泛化性能。研究基于实际风电场历史数据开展实验验证,结果表明,该方法相较传统模型在预测精度、鲁棒性和误差抑制方面表现更优,适用于高比例可再生能源接入背景下的电力系统调度需求。; 适合人群:从事新能源发电预测、电力系统优化调度、智能算法与深度学习融合应用等方向的科研人员及工程技术人员,尤其适合具备Matlab编程能力、熟悉时间序列建模与深度学习框架的研究者。; 使用场景及目标:①实现风电场短期功率高精度预测,支撑电网安全稳定调度与能量管理;②为深度学习模型结构设计与智能优化算法联合调参提供实践范例;③推动人工智能技术在可再生能源预测、智能电网运行等领域的落地应用。; 阅读建议:建议结合提供的Matlab代码深入理解CNN-BiGUR-Attention网络架构搭建、注意力机制实现方式及OOA优化流程,重点关注数据预处理、模型训练与参数调优细节,可通过替换不同风电数据集进行对比实验,进一步掌握模型迁移能力与适应性。

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧