1.jQuery的replaceWith方法
可用请求的数据(数据可以是一个页面)来无刷新替代当前页面的某个局部地区(也可以替代当前整个页面,只要你指定的范围够大)
<div class="tn-box tn-widget tn-widget-content tn-corner-all tnc-search-history"> <div class="tn-box-header tn-widget-header tn-corner-top tn-border-bottom"> <div class="tn-option"><a id="clear-histories" class="tnc-deletle" href="#">清空</a></div> <h3 class="tn-helper-reset">搜索历史</h3> </div> <div class="tn-box-content tn-widget-content tn-corner-bottom"> @if (Model != null) { <ul id="search-histories" class="tn-list"> @foreach (var item in Model) { <li data-history-value='@item'><a title='@item' href="javascript:void()">@HtmlUtility.TrimHtml(item, 14)</a></li> } </ul> } </div> </div>
<script type="text/javascript">
$(function () { var searchForm = $('#searchForm'); var keyword = $('#keyword', searchForm); //注册点击搜索历史事件 $('#search-histories').delegate("a", "click", function (e) { e.preventDefault(); keyword.val($(this).attr("title")); searchForm.submit(); }); //点清空 $("#clear-histories").click(function (e) { e.preventDefault(); var clearUrl='@Html.Raw(SiteUrls.Instance().SearchHistories(Spacebuilder.Blog.BlogSearcher.CODE, true))'; $.get(clearUrl,function (data) { $('.tnc-search-history').replaceWith(data); }) }) }) </script>
2.做页面离开提示时应知
链接里的href可以是#和javascript:void(0),这时点击链接都不会有页面的跳转,但是用#会跳到页面的开始,我们通常用jquery的e.preventDefault()来防止这种默认行为,其实可以有一种更简单的做法:
可以使用 <a href="###"></a>防止锚点
另外,实际使用的时候应该尽量避免使用javascript:void(0)这样的写法,因为ie对这种行为的解释又是与众不同,例如在判断是否要离开页面时需要判断window.onbeforeunload事件,ie会认为点击了javascript:void(0)也是要离开页面,firefox、chrome就不会
3.$.post(url,$("form").serialize()) 与 $("form").ajaxSubmit()
<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>FormSerialize</title> <script src="../../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> </head> <body> <form action="#" method="post" id="formId"> <input type="hidden" name="LYR" value="1" /> <input type="hidden" name="LYNR" value="2" /> <input type="hidden" name="TOLYR" value="3" /> <input type="checkbox" name="CB" value="4" /> <input type="checkbox" name="CB" value="5" /> <input type="checkbox" name="CB" value="6" /> <input type="hidden" name="LYSJ" value="8" /> <input type="button" name="TJ" id="TJ" value="9" /> </form> </body> </html> <script> $(function () { $("#TJ").click(function () { alert($("#formId").serialize()); alert($("#formId").serializeArray()[0].value); $.post("/LeaveWord/FormSerialize.asp", $("#formId").serialize(), function (data) { }) }) }) </script>
serialize() 会将表单的元素序列化为 LYR=1&LYNR=2&TOLYR=3&CB=4&CB=5&CB=6&LYSJ=8
serializeArray() 会将表单的元素序列化为 [{name:LYR,value:1},{name:LYNR,value:2},{name:TOLYR,value:3},{name:CB,value:4}{name:CB,value:5},{name:CB,value:6},{name:LYSJ,value:8} ]
这两种方式都可以被ASP.NET MVC的模型绑定很好的绑定数据
ajaxSubmit是一个jQuery插件 使用也差不多
<script> $(function () { $("#TJ").click(function () { $("#formId").ajaxSubmit({ success: function () { }, url:"/LeaveWord/AjaxSubmit.asp" }) }) }) </script>
ajaxSubmit这种方式,可以不指定url,默认是提交到表单指定的url
4.构造函数:this() :base()
在类的构造函数后面加冒号,再跟this() 或 base() 的意思就是 先执行冒号后面的构造函数,再执行当前的构造函数。
/// <summary> /// 构造函数 /// </summary> public AskService() : this(new AskAnswerRepository(), new AskQuestionRepository()) { } /// <summary> /// 构造函数 /// </summary> /// <param name="askAnswerRepository">问答仓储实现</param> /// <param name="askQuestionRepository">问答仓储实现</param> public AskService(IAskAnswerRepository askAnswerRepository, IAskQuestionRepository askQuestionRepository) { this.askAnswerRepository = askAnswerRepository; this.askQuestionRepository = askQuestionRepository; }
上面那样写,在实例化AskService时就不用传AskAnswerRepository和AskQuestionRepository的实例了,直接
AskService askService = new AskService() 就可以直接实例化它们了
public class SupportOpposeEventArgs : CommonEventArgs { public SupportOpposeEventArgs(long objectId, long userId,string type) : base(type) }上面是先执行基类的构造函数并且给其传了一个参数,然后执行本类的构造函数
5.C#字典的使用
Dictionary.Add(key,value)
Dictionary[key]=value
一般来说用第二种,第一种有可能会出现key重复的情况,而第二种的情况是没有这个key就添加,有这个key的话就更新。
6.VS调试小技巧
VS在调试时除了可以给表达式添加监视外,还有一个调用堆栈(它可以从当前调试的方法往外找直到找到这个方法的参数的最初赋值的地方,当然有些从其他DLL传过来的值会显示外部代码),还有一个即时窗口(你可以在这里使用当前所调试方法的任何一个参数,当然你也可以在这里定义变量,它们都可以在这里编译并执行,然后显示出结果)
7.jQuery插件控制滚动条的滚动
8.通过浏览器书签栏执行js
下面第一个就是花瓣网通过浏览器书签栏执行js调用其外站图片采集的js
这段a标签里的js会存储在浏览器里,所以它可以操作任何一个页面,并且你如果改了这段js,必须重新将其拖入标签栏才会奏效
并且在执行的js中传入了当前页面的window和document对象
<a href="javascript:void(function(d,a,c,b){a[c]&&typeof a[c].showValidImages=='function'?a[c].showValidImages():(b=a.createElement('script'),b.id='huaban_script',b.setAttribute('charset','utf-8'),b.src='http://huaban.com/js/pinmarklet.js?'+Math.floor(+new Date/1E7),a.body.appendChild(b))}(window,document,'__huaban'));" onclick="javascript:alert('把这个按钮拖到你的浏览器书签栏'); return false;" class="pin-button">采集到花瓣<span class="drag-arrow"></span></a> <a href="javascript:void(alert('123'));" onclick="javascript:alert('把这个按钮拖到你的浏览器书签栏'); return false;" class="pin-button">采集<span class="drag-arrow"></span></a>
看其源码会发现
var global="__huaban";
document[global].showValidImages = showImagesAndInitPinBtn;
而showImagesAndInitPinBtn是一个函数,这里将这个函数存到document的showValidImages里面了,所以这里在调用的时候传了一个'__huaban',然后通过a[c].showValidImages()直接调用了这个函数,开始执行一系列js。
保存在document里貌似是因为作用域更大一些
更多信息如下:
加载后先运行
showValidImages()即showImagesAndInitPinBtn()
获取当前网站页面的图片
getCurrentPageImagesWithEncapsulation()
isValidImage()验证图片 encapsulateImage()封装图片 getVideoOnCustomerPage()
showImages(e)显示要采集的图片 构造一个显示这些图片的div等
参数e是getCurrentPageImagesWithEncapsulation()的返回值
thunderpinImage()快速采集 pinImage()采集
全局变量可搜__huaban,都在它附近
9.input file标签在弹出框中过滤文件类型
<input id="photoFile" class="photoFile" name="photoFile" type="file" accept="image/gif,image/jpeg,image/bmp,image/jpg,image/png"/>
10.VS2010多线程调试
VS2010下多线程的调试(来自MSDN) http://blog.163.com/df19861017@126/blog/static/8123353620115305110982/
VS2010下的多线程窗口
12. SQL Server2005使用CTE实现递归
相关推荐
微信小程序-十二神鹿点餐(外卖小程序)源码。资源中包含了详细的系统图文搭建教程。源码都是实际项目,经过测试可以正常稳定运行在服务器,需要具备基础服务器搭建知识,不会搭建的请谨慎购买。
十二、 多线程★★★★ 39 为什么要使用多线程 39 创建线程和启动 39 线程的生命周期 44 线程管理 45 线程同步 49 线程通信 52 线程池 58 死锁 64 线程相关类 65 十三、 同步★★★★★ 67 十四、 Lock接口 70 十五...
节约用水小知识.docx 节约用纸小知识.docx 绿色1小时的十种方法.docx 认识沙尘暴.docx 生活中,我们应该节约哪些能源?.docx 世界环境日.docx 小学生日常环保行为.docx 校园环保小措施.docx 3.健康 和健康有关的名言...
十二赞小程序全套源代码十二赞团队发布了数百万人民币,开发了本套小程序系统。原生实现。功能齐全,架构可扩展,支持千万级访问毫无压力。接下来,我会把十二赞各自的全部小程序的源代码整理,开放出来。陆陆续续...
等等十二个类别 #### 多轮对话机制 * 意图继承 * 主体继承 faq问答 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、...
本系列为小技巧或知识点聚合,如果你想看更多相关内容,请在本系列文章的相关文章内查看: 一:支付倒计时 作者:莫兰迪不会没有瓶子,来自授权地址 (此图片来源于网络,如有侵权,请联系删除! ) 由于web 经验弱爆- ...
十二 StringBuffer 63">适合初学者看的最简单的基础知识 第一章:开发简单的java应用程序 3 一 JAVA 3 二 Java的三大领域 3 三 开发Java程序的步骤: 3 四 程序的组成部分: 4 五 基本结构 4 六 注释 5 七 命名规范...
.NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...
::十二:多页应用程序,在它们之间发送数据并从api读取json数据 ::十三:共享首选项 ::十四:基本知识02 正确使用资产文件的方法 使用模型类显示数据 选项菜单,PopupMenu,选中时,PopupButton,onSelected 列表...
十二:快乐学拼音,纠正普通话学习,纠正发音,拼音深入学习 十三:古文诗词,包含6万多条古文,包括翻译,智能查询 十四:古文释义,包含2万多文言文的相关知识,考试经常用得上 十五:数理化公式大全,...
整理的一些网络相关的知识点
四,应该具备的知识 五,linux系统引导过程简介 六,编译内核 七,编译busybox 八,制作根文件系统 九,制作ramdisk映象文件 十,内核与busybox的整合 十一,安装测试和内容调整 十二,babylinux中的BUG 十三,接下来要做的...
大家可以去我的提出意见,还可以加入讨论群,针对每个知识点提出自己的想法和问题,这里有一群很好的Android小伙伴等你哟。(打广告的人太多,所以麻烦在公众号里加我微信,我拉你进群)。(如果对你有帮助的话,希望...
课件共由十二部分组成,具体分为:复习回顾——导入课题——刀具半径补偿的必要性——刀具半径补偿的概念——刀具半径补偿的指令格式——刀具半径补偿的判断方法——刀具半径补偿的参数设置——刀具半径补偿的补偿...
根据ICT技术的特点和客户不同层次的需求,华为认证为客户提供面向十二个方向的三级 认证体系。 HCNA是对企业网络初级知识和技能的认证。 HCNA定位于企业网络技术领域具备初级知 识和技能水平的专业人士。侧重于对...
第二部分:日语知识运用(共45小题:每小题1分,满分45分) 16. あの星は10年 1回しか見られないそうです。 Aの Bに Cが Dで 17. 東京に来てから、きょう ちょうど2年になりました。 Aで Bが ...
十二:快乐学拼音,纠正普通话学习,纠正发音,拼音深入学习 十三:古文诗词,包含6万多条古文,包括翻译,智能查询 十四:古文释义,包含2万多文言文的相关知识,考试经常用得上 十五:数理化公式大全,...
我们不仅给出了详细的解题过程,而且对有难度或综合性较强的习题做了分析和小结,从而更好地帮助学生理解掌握每 5 .考研考试指导首先总结了各章节考研考试的常考题型十二例,然招选了清华大学等名校的最新考研考试...
童诗白、华成英编写的《模拟电子技术基础(第5版十二五普通高等教育本科国家级规划教材)》是普通高等教育“十二五”国家级规划教材,是总结首届国家级精品课程—— 清华大学“电子技术基础”的十年教学实践和资源...
童诗白、华成英编写的《模拟电子技术基础(第5版十二五普通高等教育本科国家级规划教材)》是普通高等教育“十二五”国家级规划教材,是总结首届国家级精品课程—— 清华大学“电子技术基础”的十年教学实践和资源...