博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Daily】Javascript事件对象
阅读量:6878 次
发布时间:2019-06-26

本文共 4081 字,大约阅读时间需要 13 分钟。

1、二维数组初始化
int arr[5][6] =
{
    { 0, 1, 2, 3, 4, 5},         
    {10,11,12,13,14,15},
    {20,21,22,23,24,25},
    {30,31,32,33,34,35},
    {40,41,42,43,44,45},
}; 
2、为dropdownlist增加数据
dropdownlist.Items.Add(new ListItem(arrtype[v1].ToString(),v1.ToString()));
3、动态创建DataTable
比如在做购物车的时候我们需要建立一个datatable,来存放一些购物车中的东西,最后在把他们写到数据库,下面是实现方法。
datatable dt=new datatable("cart");
datacolumn dc1=new datacolumn("prizename",type.gettype("system.string"));
datacolumn dc2=new datacolumn("point",type.gettype("system.int16"));
dt.columns.add(dc1);
dt.columns.add(dc2);
//以上代码完成了datatable的构架,但是里面是没有任何数据的
   for(int i=0;i<10;i++)
   {
    datarow dr=dt.newrow();
    dr["prizename"]="娃娃";
    dr["point"]=10;
   }
  //填充了10条相同的记录进去
有人会这么做
datarow dr=new datarow();
  .....
dt.rows.add(dr);
这样是不行的,因为一个datarow必定是属于一个datatable的,不能凭空建立,就好比一条记录一定是属于一个表一样
又有人这么做
    datarow dr=dt.newrow();
    dr["prizename"]="娃娃";
    dr["point"]=10;
   for(int i=0;i<10;i++)
   {
         dt.rows.add(dr);
   }
这样做同样是错误的,因为datatable已经有这条datarow了,就好比一个表中不可能存在2条一样的记录,必须每次newrow()
http://www.west263.com
4、将SELECT到的多行数据合并为一行,例如:
SELECT COUNTRY_CODE FROM COUNTRY
结果:
101
102
要得到101;102;
DECLARE @xml XML
SET @xml=(SELECT (COUNTRY_CODE +';') FROM COUNTRY FOR XML PATH(''))
SET @STR= CONVERT(NVARCHAR(MAX),@xml)
5、文本框输入回车后触发按钮
5.1. 添加函数searchFocus() 
ffunction searchFocus() 
        if(event.keyCode==13) 
        document.all.btn1.focus(); 
5.2. 如果tb1是客户端控件 
在aspx页面中写, 
<input id= "tb1 " οnkeydοwn= "javascript:searchFocus() " type= "text "> 
如果是服务器端控件,可以用上面的写法或在后台cs文件的Page_Load()中写, 
tb1.Attributes.Add( "onkeydown ", "javascript:searchFocus() ");
5.3、
javascript中的caller、constructor
caller: 
  返回一个对函数的引用,该函数调用了当前函数。对于函数来说,caller 属性只有在函数执行时才有定义。如果函数是由顶层调用的,那么 caller 包含的就是 null 。
http://www.cnblogs.com/sunwangji/archive/2006/08/21/482341.html
function callerDemo() {
if (callerDemo.caller) {
var a= callerDemo.caller.toString();
alert(a);
} else {
alert("this is a top function");
}
}
function handleCaller() {
callerDemo();
}
结果:function handleCaller() {
callerDemo();
}
constructor:
   把"实例化的对象".constructor 等于"被实例化的类"
function Person(name){
this.name = name;
}
var lenel = new person("lenel");
alert(lenel.constructor === Person);
但是,对象的constructor属性并非指向其构造器,而是指向其构造器的prototype属性的constructor属性
5.4、
javascript的事件对象event
http://www.cnblogs.com/ashun/archive/2006/11/27/event_javascript_ie_firefox_gorush.html
在ie中,事件对象是作为一个全局变量来保存和维护的。 所有的浏览器事件,不管是用户触发
的,还是其他事件, 都会更新window.event 对象。 所以在代码中,只要轻松调用 window.event
就可以轻松获取 事件对象, 再 event.srcElement 就可以取得触发事件的元素进行进一步处理
在ff中, 事件对象却不是全局对象,一般情况下,是现场发生,现场使用,ff把事件对象自动传
递给对应的事件处理函数。在代码中,函数的第一个参数就是ff下的事件对象了。
  <button id="btn1">按钮1</button>
  <button id="btn2">按钮2</button>
  <button id="btn3">按钮3</button>
  
  <script>
  
  window.οnlοad=function(){
  document.getElementById("btn1").οnclick=foo1
  document.getElementById("btn2").οnclick=foo2
 document.getElementById("btn3").οnclick=foo3
 }
 
function foo1(){
 //ie中, window.event使全局对象
 alert(window.event) // ie下,显示 "[object]" , ff下显示 "undefined"
     
//ff中, 第一个参数自动从为 事件对象 
alert(arguments[0]) // ie下,显示 "undefined", ff下显示 "[object]"
 }
 function foo2(e){
 alert(window.event) // ie下,显示 "[object]" , ff下显示 "undefined"
     
//注意,我从来没有给 foo2传过参数哦。 现在 ff自动传参数给 foo2, 传的参数e 就是事件对象了
 alert(e) // ie下,显示 "undefined", ff下显示 "[object]"
 }
 function foo3(){ //同时兼容ie和ff的写法,取事件对象 
alert(arguments[0] || window.event) // ie 和 ff下,都显示 "[object]"
 var evt=arguments[0] || window.event
 var element=evt.srcElement || evt.target //在 ie和ff下 取得 btn3对象
 alert(element.id) // btn3
 }
 </script>
看到这里,我们似乎对 ie和ff的事件处理方式都已经理解了,并找到了解决的办法。
但是。。。。事情还没有结束。
看代码
<button id="btn" οnclick="foo()">按钮1</button>
<script>
function foo(){  
    alert(arguments[0] || window.event) 
}
</script>
很不幸,我们 foo给我们的结果是 undefined, 而不是期望的 object
原因在于 事件绑定的方式
     οnclick="foo()" 就是直接执行了, foo() 函数,没有任何参数的,
     这种情况下 firefox没有机会传递任何参数给foo
    而 btn.οnclick=foo 这种情况, 因为不是直接执行函数,firefox才有机会传参数给foo
 解决方法:
     方法一:比较笨的方法,既然 firefox没有机会传参数,那么自己勤快点,自己传
<button id="btn" οnclick="foo(event)">按钮</button>
<script>
function foo(){  
   alert(arguments[0] || window.event)       
   var evt=arguments[0] || window.event
   var element=evt.srcElement || evt.target 
   alert(element.id)  
}
</script>

转载于:https://www.cnblogs.com/lost2x/archive/2011/09/06/2169056.html

你可能感兴趣的文章
驰骋工作流引擎,表单引擎工作事务单元测试报告
查看>>
删除的文件如何恢复?详细方法介绍
查看>>
PDF转换CAD有什么方法
查看>>
物联网不可忽视的安全隐患
查看>>
发票扫描仪的前景
查看>>
MySQL常见的面试题+索引原理分析!
查看>>
主从延迟复制 -- 数据恢复测试!
查看>>
php判断IP跳转区域二级域名
查看>>
百度webupload--上传图片功能---插件使用
查看>>
Java深、浅克隆(clone)
查看>>
如何在View上不用UIImageView重新绘制一张图片?
查看>>
实现控制器(Controller)
查看>>
好多年前写的一个C++事件回调工具
查看>>
python3使用logging日志记录
查看>>
servlet3中jar的web资源携带
查看>>
3D打印将对零售模式产生颠覆影响,能否抓住机遇
查看>>
不用加减乘除实现加法
查看>>
Android SD卡 文件或目录拷贝、复制、粘贴
查看>>
git命令与github使用(转主要看向远程仓库推内容)
查看>>
JAVA生成四位数的验证码
查看>>