jQuery插件开发

基于jQuery实现的数字滚动插件 基于jQuery实现的数字滚动插件,适用于倒计时时数字滚动或抽奖时数字滚动 立即下载

【前言】
jQuery已经被广泛使用,凭借其简洁的API,对DOM强大的操控性,易扩展性越来越受到web开发人员的喜爱,我在社区也发布了很多的jQuery插件,经常有人询问一些技巧,因此干脆写这么一篇文章给各位jQuery爱好者,算是抛砖引玉吧。

【基础】 
a)样式
很 多人会认为样式是个很复杂的东西,需要沉着冷静的心态加上非凡的审美观才能设计出赏心悦目的UI,抛开图片设计不说,其实css也就是那么些属 性:position,margin,padding,width,height,left,top,float,border,background...

UI设计的漂亮与否在很大程度上依赖于设计人员对配色的把握和整体效果的协调。举个简单的例子,一个简单的页面,马虎的人:

复制代码
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
    
< title > Test Page </ title >
</ head >
< body >
    jQuery是一个框架!压缩后有30多k吧。
</ body >
</ html >
复制代码


细心的人:

复制代码
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
    
< title > Test Page </ title >
    
< style  type ="text/css" >
        body
        
{
            font-family
: '宋体' ;
            font-size
: 12px ;
            
}
    
</ style >
</ head >
< body >
    jQuery是一个框架!压缩后有30多k吧。
</ body >
</ html >
复制代码

专心的人:

复制代码
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head >
    
< title > Test Page </ title >
    
< style  type ="text/css" >
        body
        
{
            font-family
: 'Verdana','宋体' ;
            font-size
: 12px ;
            
}
    
</ style >
</ head >
< body >
    jQuery是一个框架!压缩后有30多k吧。
</ body >
</ html >
复制代码


我们对比一下三者的UI效果:



一目了然,或许很多的站点失去关注正是因为这不起眼的font-family,font-size。当然这还只是个简单的例子,掌握css应该从简单做起,从基本入手,在实践中运用并不断深入。

有人会说要这些有啥用啊,对dom的操作其实通过getElementById, getElementsByTagName以及其他的API都可以轻松的完成,这话是没错,当思路确定后,思想才是重点,一段代码是精华还是糟粕很容易就 可以区分出来,究其原因还是取决你自己,举个简单的例子,大量的html组装,路人甲:

var  a  =   new  Array( 10 );
var  menu  =   '' ;   
for  ( var  i  =   0 ; i  <  a.length; i ++ ) {
  menu 
+=   ' <li class="style_ '   +  a[i]  +   ' " > '   +  a[i]  +   ' </li> ' ;
}


路人乙:

复制代码
String.prototype.format  =   function () {
    
var  args  =  arguments;
    
return   this .replace( / {(\d{1})} / g,  function () {
        
return  args[arguments[ 1 ]];
    });
};

var  a  =   new  Array( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 );
var  m  =   ' <li class="style_{0}" >{0}</li> ' ;

for  ( var  i  =   0 ; i  <  a.length; i ++ ) {
    menu 
+=  m.format(a[i]);
}
复制代码


在实现方式明确的情况下,优雅高效的代码显然更具吸引力。

【实践】
jQuery开发或使用,更多的灵感是来自实践,而不是copy||paste(奉行拿来主义的同学可以离开了)。

那么在这里我会用一个简单的例子来阐述jQuery插件开发的流程,能否举一反三就看各位看官了。

【目的】 

开发一个插件之前我们需要对自己的目的有一个清醒的认识,有很明确的方向感,那么此次我作为示例插件的目的,就是呈现一个用于UI的Slider - 滑动条,常年从事于或暂时专注于win32开发的同学应该比较了解。

草图

真正动手编码之前我们还需要有一个草图来描述自己插件的“长相”(事件驱动或API封装的可以忽略)。
很多的同学在做UI开发前往往会忙于搜集各种小图片(非精通ps或iconworkshop人士),其实漂亮的图标的确可以美化我们的UI,不过我一般的处理方式是编写易于扩展的css,前期的UI呈现尽量少使用图片,多用线条完成。

ok,言归正卷,那么我的slider设计草图是:

 

解释下下文将用到的几个词:
slider: 此部分是作为拖拽手柄来使用,用户可以通过拖拽此部分来更新completed bar的位置。
completed: 此部分作为bar的内嵌元素,作为特殊效果来显示slider与起始点的距离,亦即与slider的value值关联。
bar: slider的载体,completed的满值。

思路:
slider作为手柄提供拖拽功能,作用区域为bar,拖拽过程中completed条必须实时更新(长度),影响区域为slider至bar左端的距离。

【编码】 

开发jQuery UI/Effect 插件在很多时候都需要与UI交互,因此在呈现上需要提供Html tree来绘制我们的插件,最终通过js dom来输出,那么在绘制简单的dom结构的时候我会直接用js来完成,不过如果嵌套比较复杂的话,我们还是应该先用html来完成,然后转变成js输 出。

html tree:

< div  class ="defaultbar" >
  
< div  class ="jquery-completed" >   </ div >
  
< div  class ="jquery-jslider" >   </ div >
</ div >

deafultbar -> bar
jquery-completed -> completed
jquery-jslider -> slider

前期UI呈现上我们不使用图片,尽量用线条、颜色来完成:

Css

将bar的position属性设置成relative,以方便子节点的浮动(子节点使用position:absolute来获得内联浮动效果)。

那么我们可以看下这个css和html tree产生的UI效果:
 

ok,具备了所需的元素 - slider, completed, bar.

一些规范:

当我们画出了UI之后就可以正式编写jQuery插件代码了,不过在着之前我们还需要对jQuery插件开发的一些规范性有一些了解。

1. 使用闭包:

( function ($) {
  
//  Code goes here
})(jQuery);

这是来自jQuery官方的插件开发规范要求,使用这种编写方式有什么好处呢?

a) 避免全局依赖。

b) 避免第三方破坏。

c) 兼容jQuery操作符'$'和'jQuery '

我们知道这段代码在被解析时会形同如下代码:

var  jq  =   function ($) {
  
//  Code goes here
}; 
jq(jQuery);

这样效果就一目了然了。

2. 扩展

jQuery提供了2个供用户扩展的‘基类’ - $.extend和$.fn.extend.

$.extend 用于扩展自身方法,如$.ajax, $.getJSON等,$.fn.extend则是用于扩展jQuery类,包括方法和对jQuery对象的操作。为了保持jQuery的完整性,我比较 趋向于使用$.fn.extend进行插件开发而尽量少使用$.extend.

3. 选择器

jQuery提供了功能强大,并兼容多种css版本的选择器,不过发现很多同学在使用选择器时并未注重效率的问题。 

a) 尽量使用Id选择器,jQuery的选择器使用的API都是基于getElementById或getElementsByTagName,因此可以知道 效率最高的是Id选择器,因为jQuery会直接调用getElementById去获取dom,而通过样式选择器获取jQuery对象时往往会使用 getElementsByTagName去获取然后筛选。

b) 样式选择器应该尽量明确指定tagName, 如果开发人员使用样式选择器来获取dom,且这些dom属于同一类型,例如获取所有className为jquery的div,那么我们应该使用的写法 是$('div.jquery')而不是$('.jquery'),这样写的好处非常明显,在获取dom时jQuery会获取div然后进行筛选,而不是 获取所有dom再筛选。

c) 避免迭代,很多同学在使用jQuery获取指定上下文中的dom时喜欢使用迭代方式,如$('.jquery .child'),获取className为jquery的dom下的所有className为child的节点,其实这样编写代码付出的代价是非常大 的,jQuery会不断的进行深层遍历来获取需要的元素,即使确实需要,我们也应该使用诸如$(selector,context), $('selector1>selector2'), $(selector1).children(selector2), $(selctor1).find(selector2)之类的方式。

开始编码 

话题有点扯远,ok,在对UI有了清晰的认识后我们就可以使用js来输出html了。

我们使用jSlider来命名这个slider插件(为了避免插件冲突,插件命名时也应十分考究,这里我就俗一回)。

复制代码
$.extend($.fn, {
        
// /<summary>
         // / apply a slider UI
         // /</summary>
        jSlider:  function (setting) {
        }
});
复制代码

在插件开发中比较标准的方式是将元数据独立出来并开放API,比如这里的setting参数传入值,有时候为了减少代码编写量,我习惯于直接在插件内赋值:

复制代码
var  ps  =  $.extend({
    renderTo: $(document.body),
    enable:  true ,
    initPosition:  ' max ' ,
    size: { barWidth:  200 , sliderWidth:  5  },
    barCssName:  ' defaultbar ' ,
    completedCssName:  ' jquery-completed ' ,
    sliderCssName:  ' jquery-jslider ' ,
    sliderHover:  ' jquery-jslider-hover ' ,
    onChanging:  function () { },
    onChanged:  function () { }
}, setting);
复制代码


规范的做法:

复制代码
$.fn.jSlider. default   =  {
    renderTo: $(document.body),
    enable: 
true ,
    initPosition: 
' max ' ,
    size: { barWidth: 
200 , sliderWidth:  5  },
    barCssName: 
' defaultbar ' ,
    completedCssName: 
' jquery-completed ' ,
    sliderCssName: 
' jquery-jslider ' ,
    sliderHover: 
' jquery-jslider-hover ' ,
    onChanging: 
function () { },
    onChanged: 
function () { }
    };

$.extend({},$.fn.jSlider.
default ,setting);
复制代码


ok, 下面描述下我所定义的这些API的作用:
renderTo: jSlider的载体、容器,可以是一个jQuery对象,也可以是选择器。
enable: jSlider插件是否可用,true时end-user可拖拽,否则禁止。
initPosition: jSlider的初始值,‘max’或者‘min’,亦即 slider的value值,1或者0。
size: jSlider的参数,包括2个值barWidth - bar的长度, sliderWidth - slider的长度。
barCssName: bar的样式名称,便于end-user自行扩展样式。
completedCssName: completed的样式名称。
sliderCssName: slider的样式名称。
sliderHover: slider聚焦时的样式名称。
onChanging: slider被拖拽时触发的事件。
onChanged: slider拖拽结束时触发的事件。

此时我们需要将renderTo强制转换成jQuery对象(兼容使用selector的情况):

ps.renderTo  =  ( typeof  ps.renderTo  ==   ' string '   ?
                 $(ps.renderTo) : ps.renderTo);


然后将html tree输出到render:

复制代码
/*  ---------->
html tree:
<div> ---->sliderbar
<div>&nbsp;</div>   ----> completed bar
<div>&nbsp;</div>   ----> slider                  
</div>
<-----------
*/
var  sliderbar  =  $( ' <div><div>&nbsp;</div><div>&nbsp;</div></div> ' )
                    .attr(
' class ' , ps.barCssName)
                        .css(
' width ' , ps.size.barWidth)
                            .appendTo(ps.renderTo);

var  completedbar  =  sliderbar.find( ' div:eq(0) ' )
                        .attr(
' class ' , ps.completedCssName);

var  slider  =  sliderbar.find( ' div:eq(1) ' )
                .attr(
' class ' , ps.sliderCssName)
                    .css(
' width ' , ps.size.sliderWidth);
复制代码

这样我们就在UI上直接呈现了Html并且用定制的css进行渲染,分别用sliderbar, completedbar, slider对我们需要的三个对象进行缓存。

ok, 在呈现了UI后我们就需要提供方法来实现slider的拖拽,在这之前我们还需要实现一个方法,就是completedbar的实时更新,即在拖动slider的时候让completedbar始终填充左侧区域:

复制代码
var  bw  =  sliderbar.width(), sw  =  slider.width();
// make sure that the slider was displayed in the bar(make a limited)
ps.limited  =  { min:  0 , max: bw  -  sw };

if  ( typeof  window.$sliderProcess  ==   ' undefined ' ) {
    window.$sliderProcess 
=   new  Function( ' obj1 ' ,  ' obj2 ' ,  ' left ' ,
                                     
' obj1.css(\ ' left\ ' ,left);obj2.css(\ ' width\ ' ,left); ' );
}
$sliderProcess(slider, completedbar, eval(
' ps.limited. '   +  ps.initPosition));
复制代码

bw,sw用来存储sliderbar和slider的长度,此处没有直接使用ps.size里的值是为了防止样式里的border-width对width造成破坏。

定义一个私用成员limited来存储slider[left]的最大值和最小值,并在后面直接使用eval('ps.limited.' + ps.initPosition)来获取,从而避免switch操 作。

同时还需定义一个全局Function用来定位completedbar的填充长度以及slider左侧距离,我给其命名为$sliderProcess。

那么我们接下来剩下的工作就是slider的拖拽功能了,那么在这里我会用到之前发布的一款jQuery拖拽插件,并做适量的订制:

复制代码
// drag and drop
var  slide  =  {
    drag: 
function (e) {
        
var  d  =  e.data;
        
var  l  =  Math.min(Math.max(e.pageX  -  d.pageX  +  d.left, ps.limited.min), ps.limited.max);

        $sliderProcess(slider, completedbar, l);
        
// push two parameters: 1st:percentage, 2nd: event
        ps.onChanging(l  /  ps.limited.max, e);
    },
    drop: 
function (e) {
        slider.removeClass(ps.sliderHover);
        
// push two parameters: 1st:percentage, 2nd: event
        ps.onChanged(parseInt(slider.css( ' left ' ))  /  ps.limited.max, e);

        $().unbind(
' mousemove ' , slide.drag).unbind( ' mouseup ' , slide.drop);
    }
};

if  (ps.enable) {
    
// bind events
    slider.bind( ' mousedown ' ,  function (e) {
        
var  d  =  {
            left: parseInt(slider.css(
' left ' )),
            pageX: e.pageX
        };
        $(
this ).addClass(ps.sliderHover);
        $().bind(
' mousemove ' , d, slide.drag).bind( ' mouseup ' , d, slide.drop);
    });
}
复制代码

这样当jSlider enable属性为true时,在end-user按下鼠标时绑定mousemove事件,在鼠标弹起时移除,我们只需要同步更新slider的left 属性和completedbar的width即可,同时在drag中绑定onChanging方法,在drop中绑定onChanged方法,向这两个方 法推送的参数相同,1>百分比,即value值,介于0~1,2>event。

那么至此我们的jSlider插件就基本成型,向用户提供了一个可拖拽的slider。

【扩展】 
有的时候用户却不是那么容易满足,于是有人高呼:“我要自己设置value,为什么不提供这个功能?”。

那么这时我们就需要为用户公开一个方法,用于设置jSlider的value,首先考虑的是作为方法需要一个作用对象(jSlider),那么此时我又不 想将作用对象作为参数传入,那么我们还是将这个方法作为插件来开发,我们将方法命名为setSliderValue,开放2个参数,v(value值)和 callback(设置完成后的回调函数)。

即:$.fn.setSliderValue(v,callback);

ok,那么剩下的就是作用对象了,由之前的设计可知,在slider拖动时主要作用于2个对象,slider和completedbar,那么我们在jSlider插件末尾加上一段代码来返回slider对象:

slider.data  =  { bar: sliderbar, completed: completedbar };
return  slider;

这样我们在初始化jSlider的时候就可以直接用一个变量来获取jSlider对象,然后调用setSliderValue方法了,伪码:

var  slider  =  $.fn.jSlider({});
slider.setSliderValue(v,
function (){});

setSliderValue代码:

复制代码
try  {
    
// validate
     if  ( typeof  v  ==   ' undefined '   ||  v  <   0   ||  v  >   1 ) {
        
throw   new  Error( ' \ ' v\ '  must be a Float variable between 0 and 1. ' );
    }

    
var  s  =   this ;

    
// validate 
     if  ( typeof  s  ==   ' undefined '   ||
        
typeof  s.data  ==   ' undefined '   ||
            
typeof  s.data.bar  ==   ' undefined ' ) {
        
throw   new  Error( ' You bound the method to an object that is not a slider! ' );
    }

    $sliderProcess(s, s.data.completed, v 
*  s.data.bar.width());

    
if  ( typeof  callback  !=   ' undefined ' ) { callback(v); }
}
catch  (e) {
    alert(e.message);
}
复制代码

这里同样调用了全局Function $sliderProcess在设置slider的value值时进行completedbar[width]和slider[left]的更新。由于此 处进行了异常处理,所以如果end-user在确保setSliderValue被作用于jSlider对象的时候可以删除此异常处理代 码。

【皮肤】
根据jSlider的API我们可以更加方便的为其设定皮肤,为了让jSlider更加专业,我们需要2张图片:

用来作为completedbar背景的'bar'和用来作为slider背景的'slider',ok,我们更新下样式:

BlueSkin

由于在设置样式时我仍然让子节点样式使用了API的默认值,因此在创建jSlider时我们只需要设置barCssName就行了:

复制代码
var  blue  =  $.fn.jSlider({
    renderTo: 
' #slidercontainer ' ,
    size: { barWidth: 
500 , sliderWidth:  10  },
    barCssName: 
' bluebar ' ,
    onChanging: 
function (percentage, e) {
        
//  code goes here
    }
});
复制代码

呈现出来的UI:

我们这样来设置其值:

// set percentage with a callback function
blue.setSliderValue( 0.65 ,  function (percentage) {
    
//  code goes here
});


【通用性】
当然,我们不仅可以将jSlider作为slider使用,有时候它也是一个progressbar:

(代码我就不贴了,直接在demo里查看 ;-) )

【小结】 
通篇到这里就结束了,简单的介绍了一款jQuery插件的开发流程,以及开发中应该注意的细节,那么在下一篇的文章中我会向大家介绍如何打造一个通用型的 自动完成 插件。

live demo

source[google code]

/**
 * 
 * Licensed
 * Under an Attribution, Share Alike License
 *
 * Copyright 2008, 2009 Jericho [ thisnamemeansnothing[at]gmail.com ]
 *
 **/
消息推送示例.rar 采用HslCommunication公开组件写的wpf消息推送示例,包含服务端和客户端,简单的消息推送和接收示例 立即下载

相关推荐

JQuery+java消息推送

JQuery实现的无刷新后台取数据的方式,也就消息推送,不同的是,这里列举了三种方式,长连接,长轮询,以及改进以后的长轮询,后台采用java+servlet开发,送一上手,代码齐全.

jQuery插件开发 - 其实很简单

【前言】 jQuery已经被广泛使用,凭借其简洁的API,对DOM强大的操控性,易扩展性越来越受到web开发人员的喜爱,我在社区也发布了很多的jQuery插件,经常有人询问一些技巧,因此干脆写这么一篇文章给各位jQuery爱好者,算是抛砖引玉吧。 【基础】 a)样式 很 多人会认为样式是个很复杂的东西,需要沉着冷静的心态加上非凡的审美观才能设计出赏心悦目的UI,抛...

weixin_34144450的博客 148

jQuery实现社区化分享插件

插件描述:社会化分享插件简单高效酷炫顺畅的交互体验目前可以分享的平台有:腾讯微博新浪微博QQ空间豆瓣微信二维码分享, 参考实例:http://www.jq22.com/jquery-info4685

jquery编程的标准写法和最佳实践(jquery代码规范)

关于jquery的代码规范,书写标准和最佳实践,是我近期看到的国外的一篇文章,感觉很受益!网上搜索了一下,果然被网友翻译过,但是查看翻译时间是2014年3月份左右,我又查看了该文章的更新时间是2014年10月14号。想必该文章很久之前就问世,但是作者又更改了不少问题吧,因此还是决定自己重新翻译一下!原文地址 ,文章翻译也是一件耗时耗力的事情,网友转载还请注明出处!加个链接! jQuery的加

我的博客 1682

datapush:用于推送和拉取复杂表示的 JQuery 插件

数据推送 用于推送和拉取复杂表示的 JQuery 插件

JQuery消息插件仿QQ消息弹出提醒

JQuery消息插件仿QQ消息弹出提醒 非常实用,网上强人写的。 使用方便,易于扩展。

html滑动模块,博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)

当一个页面内容很长的时候,侧边栏栏目可能显得太短,当窗口滑动到靠下的位置,则侧边即失去了展示内容的机会。很多新闻资讯类网站如新浪、网易、优快云等,会在边栏的右下角以固定的小弹窗形式,以提供更多的内容展示方式,但这并不适合博客和web2.0风格的网站。现在很多的独立博客和网站如人人网等,都使用了让侧边栏模块随滚动条滑动而位置固定的效果。就是当一个页面很长的时候,设定侧栏内容会跟随滚动条,这种效果适...

weixin_39790510的博客 1441

使用CAPL实现DoIP刷写

本文介绍了使用CAPL实现基于DoIP协议的ECU刷写方法,包含完整源码。

qq_56033302的博客 2761

30个非常流行的提示信息插件(jQuery Tooltip Plugin)

在网站的设计中,提示信息是非常细微的功能,但是起着非常重要的作用。如果你的网站中提示信息做的比较好,会给浏览者留下非常深刻的印象,同时也会起到非常好的网站宣传效果,下面介绍了30个比较流行提示信息插件jQuery Tooltip Plugin,希望对大家有帮助。 每个插件都配有比较直观的截图,也就不做详细地介绍了,如果大家喜欢某一个插件,点击超链接,自己学习如何使用吧。 1. Dynamic ...

weixin_34296641的博客 314

从学生项目到工程实践:手把手教你用ATE测试电源芯片的Rdson与漏电流

本文详细介绍了如何将学术级的电源芯片测试方案转化为工业级解决方案,重点讲解使用ATE设备测试Rdson(导通电阻)和漏电流的关键技术。从设备选型、测试夹具设计到量产环境下的工程化实现,提供了实用的优化技巧和常见问题解决方案,帮助工程师提升测试效率和精度。

weixin_42525289的博客 182

MOOS-ivp 实验一 MOOS软件的安装与执行

MOOS-ivp实验一 实验一步骤总结 文章目录MOOS-ivp实验一前言一、实验一1.下载软件2.安装必要的插件3.安装后检查4.路径添加5.执行示例文件总结 前言 在moos学习过程中,我觉得最好把学习的每一步骤都总结一下,方便日后进行回顾。moos官网设置了十八个实验,涉及到了moos的各个方面,完成这些实验也是moos入门的好办法。 一、实验一 实验一主要内容仅仅是软件的安装,仅仅这一步就花费了我接近两天的时间。主要问题发生在linux系统的配置问题上。 1.下载软件 svn co https:

weixin_44151170的博客 6669

jQuery 插件开发

常用插件 文本溢出:dotdotdot.js 单行文本省略 多行文本省略 延迟加载:lazyload.js 插件编写 方法类插件 函数类插件

xiangxiongfly 1056

Abaqus 单元与全局刚度矩阵导出实战指南:从INP修改到结果解析

本文提供了Abaqus中导出单元刚度矩阵和全局刚度矩阵的完整实战指南。通过详细步骤讲解INP文件修改、关键指令插入及结果文件解析,帮助工程师、研究人员和二次开发者深入理解有限元软件内核,实现理论验证、二次开发与深度问题调试。

k8s6orchestrator的博客 898

Jquery插件开发

教你开发jQuery插件(转) 阅读目录 基本方法 支持链式调用 让插件接收参数 面向对象的插件开发 关于命名空间 关于变量定义及命名 压缩的好处 工具 GitHub Service Hook 原文:http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html 要说jQuery 最成功的地方,我认为是它的可扩展性吸引...

GeeLoong`s Blog 970

Aurix TC3xx系列MCU ADC模块简介(一)

简单介绍英飞凌Aurix TC3xx系列单片机ADC模块的特点及内部结构。

m0_38045338的博客 6361

Android Audio其他——数字音频接口(附)

数字音频接口 DAI,即 Digital Audio Interfaces,顾名思义,DAI 表示在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI 在音频电路设计中得到越来越广泛的应用。

小旭的专栏 1028

如何开发jQuery插件

插件: 基于一个框架的扩展。 演示一个进度条插件(基于jquery的开发) jquery扩展方法(任何一个成熟的框架都有扩展自身的方法) // jQuery扩展方法 $.fn.test = function() {} $(selector).test(); // 变色的插件 &lt;span class="btn"&gt;点击我&lt;/span&gt; &lt;span class="btn"...

小钢炮的博客 394

虚拟电厂功率预测最佳实践白皮书

虚拟电厂(VPP)通过聚合分散的可再生能源资源,为电网提供可观测、可调度和可交易的解决方案。本文提出了一套功率预测方法论,并给出LSTM实现脚本,涵盖资源接入、数据治理、预测模型设计及市场交易闭环。针对风-光-储-负荷混合场景,该方法论强调轻量化部署和滚动优化,可有效提升预测精度和调度收益。未来研究将融合深度气象预报和强化学习,进一步优化VPP的协同调度能力。

专注AI大模型,软件混淆,授权 377

【jquery】如何自己开发一个简单的jquery 插件

要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统。这好比大公司们争相做平台一样,得平台者得天下。苹果,微软,谷歌等巨头,都有各自的平台及生态圈。学会使用jQuery并不难,因为它简单易学,并且相信你接触jQuery后肯定也使用或熟悉了不少其插件。如果要将能力上升一个台阶,编写一个属于自己的插件是个不错的选择。本教程可能不是最精品的,但一定是...

joker 3457

使用CNN/ResNet实现自动调制识别(RML2018.01a)

本文基于RML2018.01a大型数据集,给出CNN及其变体ResNet的信号识别的实现方式(附代码) 目录一、CNN的代码实现1.1 导入包1.2 数据读取及数据集划分1.3 构建CNN模型1.4 模型训练1.5 测试及模型可视化二、ResNet的代码实现 RML2018.01a数据集信息如下: 数据集来源 Over-the-Air Deep Learning Based Radio Signal Classification 调制类型 19种数字调制方式: 32PSK, 16APSK,

QAQIknow的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jQuery-插件开发

文章目录1. 什么是Jquery插件1.1 插件种类1.1.1 封装对象方法的插件(原型拓展)1.1.2 封装全局函数的插件(静态拓展)1.1.3 选择器插件1.2命名规范2. Jquery插件让渡(冲突)3. Jquery 插件中的闭包4.Jquery 的插件机制4.1 原型扩展4.1 静态扩展5. this关键字6.注意点6.1 参数配置6.2 默认值设置6.3 命名空间 1. 什么是Jquery插件 Jquery插件是对Jquery框架利用原型的一个扩充 插件通常是一个完备功能的封装,它是JQ功能的一

M_Edison的博客 1037

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jquery插件开发全指南

这大概是自己在这个上面的最后一个博客了,自己的博客搭建的差不多了,现在在写一个markdown支持插件,写好了之后将来就要迁移到自己的博客上去了,这个博客还会经常来看,毕竟记录了大二大三自己所走诸多的弯路。(当然最后这篇文章不是自己写的,从网上找来整理了一下) jQuery插件的开发包括两种:一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法。jQuery的

AirCloud 2919

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

学习JQuery插件开发教程

如果你跟我一样,jQuery属于入门级的,那么我建议你看我下一篇jQuery教程:自己动手开发jquery插件 ,这篇插件比较容易理解和模范,适合新手开发jQuery插件。推荐你去看一看。 在逛codeproject网站的时候,突然看到一篇文章:How to write plugin in Jquery. 如果对E文好的同学 ,可以看上面的连接。 现在我把上面网站的及结合自己的想法写这篇文章。希望能得到大牛们的支持和谅解。。。大鸟飞过。。。欢迎拍装。 插件编写的目的是给已经有的一系列方法或函数做一个封装,以

we 900
上一篇: 工作的尊严
下一篇: 前端架构
抱猫睡觉的鱼
博客等级 码龄18年 10粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值