posts - 165, comments - 198, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理


Python is a dynamic object-oriented programming language that can be used for many kinds of software development.

It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days.
offers 提出
integration 综合
extensive 宽广
standard libraries 标准库


Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code.
report 宣告
substantial 实质
productivity 生产力

posted @ 2008-09-23 09:56 G_G 阅读(196) | 评论 (1)编辑 收藏

直接 运行 div_show_drag.rar
http://www.blogjava.net/Files/Good-Game/div_Show_drag.rar

html test
<html>
<head>

<script type="text/javascript" src="showDivUtil.js"></script>

</head>

<body>

<input type="button" id="_in" value="google-baidu" onclick="test();"/>
<div id='_div' />
<script language="javascript">
/*api说明
    ShowDiv( 源element , 是否使用现有 div )
        源element,是否使用现有 div 都可为null ;
*/
var ediv = new ShowDiv('_in',null);

function test(){
    
if! ediv.isShow ){
        
// tdiv[X,Y,H,W]准备展现div set->tdiv.X = ..    ,
        // tsubEle[X,Y,H,W]
        // 源ele大小位置  ,tscreen[
screenH,screenW]屏幕长宽
        ediv.setLocation = function(tdiv,tsubEle,tscreen){
            
/*  居中展现
             tdiv.W =200 ;
             tdiv.H = 300 ;
             tdiv.X = tscreen.screenW/2-tdiv.W/2 ;
             tdiv.Y = tscreen.screenH/2-tdiv.H/2 ;
            
*/

             
/*  根据 tsubEle 位置 左显示
            tdiv.X = tsubEle.X+tsubEle.W ;
            tdiv.Y = tsubEle.Y ;
             
*/

              
/*  根据 tsubEle 大小  左长条 显示 
             tdiv.X = tsubEle.X+tsubEle.W ;
             tdiv.Y = tsubEle.Y ;
             
*/
            
        
              
/*  根据 tsubEle 大小  下长条 显示
             tdiv.X = tsubEle.X+tsubEle.W ;
             tdiv.Y = tsubEle.Y ;
             tdiv.H = 200 ;
             tdiv.W = tsubEle.W ;
             
*/
            
            
/*  .. 等等 自己尝试吧*/
            tdiv.innerHTML 
= "<li>google</li><li>baidu</li>" ;
            
//可以参考 
            Drag.init(tdiv);
        }    
        ediv.setStyle('background
-color:#F4F4F4;');
        ediv.show();
    }
else{
        ediv.close();
        
//ediv.delete();
    }
}

</script>
</body>
</html>



showDivUtil.js

/*
* Skynet
*  2008-9-15 00:56
*   liukaiyi@gmail.com
*/

function ShowDiv(subEle,ediv){
    
//public 
    this.style  ;
    
this.isShow = false ;

    
//private 
    this._div  ;
    
this._subEle  ;
    
this._subEle  ;


        
iftypeof ediv == "undefined" || ediv == null
            
this._div=document.createElement("div");
        
else iftypeof ediv == "string"
            
this._div=document.getElementById(ediv);    
        
else if(  /object/.test(typeof ediv) )
            
this._div= ediv ;
        
        
iftypeof subEle == "string"
            
this._subEle=document.getElementById(subEle);    
        
else if(  /object/.test(typeof subEle) )
            
this._subEle= subEle ;

}

    
//外置方法 x , y ,w , h , div
    ShowDiv.prototype.setLocation = new Function() ;

    
//设置 div 样式
    ShowDiv.prototype.setStyle=function(styleStrOrObj){
        
this.style=this._div.style ;
        
iftypeof styleStrOrObj == "string"){
            
var strs = styleStrOrObj.split(/;/) ;
            
for(var i=0;i<strs.length;i++){
                
var key = strs[i].split(/:/)[0];
                
var value = strs[i].split(/:/)[1];
                
var _s = key.indexOf("-") ;
                
if( _s>0
                    key
=key.substring(0,_s)+key.substring(_s+1,_s+2).toLocaleUpperCase()+key.substring(_s+2,key.length);
                
if( key!=null&&key!=''&&key!=' ' ){
                    eval( '
this._div.style.'+key+'="'+value+'"' );
                }
            }
        }
else if(  /object/.test(typeof styleStrOrObj) ) {
            
this._div.style = styleStrOrObj ;
        }
        
if(this._div.style.position==null || this._div.style.position=="")
            
this._div.style.position="absolute";
    }
    
    ShowDiv.prototype.show
=function(){
        
iftypeof this._subEle != "undefined" || this._subEle != null){
            
this._subEle.Y = getElementPos(this._subEle).y;
            
this._subEle.X = getElementPos(this._subEle).x ;
            
this._subEle.W = this._subEle.offsetWidth ;
            
this._subEle.H = this._subEle.offsetHeight ;
        }
        
//this._div.Y = sset
        //this._div.X = sset
        this._div.W = parseInt( this._div.style.width );
        
this._div.H = parseInt( this._div.style.height );
        
        
this.setLocation(this._div,this._subEle,{screenW:document.body.clientWidth,screenH:document.body.clientHeight});
        
this._div.style.left = this._div.X  ;
        
this._div.style.top = this._div.Y ;
        
        
ifthis._div.W && this._div.H ){
            
this._div.style.width = this._div.W ;
            
this._div.style.height = this._div.H ;
        }
        document.body.appendChild(
this._div);
        
this.isShow = true ;
    }

    ShowDiv.prototype.close
=function(){
        document.body.removeChild(
this._div); 
        
this.isShow = false ;
    }

     ShowDiv.prototype.
delete=function(){
        document.body.removeChild(
this._div); 
        
this._div = null ;
        
this.isShow = false ;
    }

 
//得到 Element 位置
// 说明:用 Javascript 获取指定页面元素的位置
//
 整理:http://www.codebit.cn
//
 来源:YUI DOM
function getElementPos(el) {
    
var ua = navigator.userAgent.toLowerCase();
    
var isOpera = (ua.indexOf('opera') != -1);
    
var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
    if(el.parentNode === null || el.style.display == 'none'){
        
return false;
    }
    
var parent = null;
    
var pos = [];
    
var box;

    
if(el.getBoundingClientRect){
    
// IE 
        box = el.getBoundingClientRect();
        
var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
        
var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
        
return {x:box.left + scrollLeft, y:box.top + scrollTop};
    }
else if(document.getBoxObjectFor){
     
// gecko
        box = document.getBoxObjectFor(el);
        
var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0;
        
var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0;
        pos 
= [box.x - borderLeft, box.y - borderTop];
    }
else {
     
// safari & opera
        pos = [el.offsetLeft, el.offsetTop];
        parent 
= el.offsetParent;
        
if (parent != el) {
            
while (parent) {
                pos[
0+= parent.offsetLeft;
                pos[
1+= parent.offsetTop;
                parent 
= parent.offsetParent;
            }
        }
         
if (ua.indexOf('opera') != -1|| ( ua.indexOf('safari') != -1 && el.style.position == 'absolute' )){
            pos[
0-= document.body.offsetLeft;
            pos[
1-= document.body.offsetTop;
        }
    }
 
    
if (el.parentNode) { parent = el.parentNode; }
    
else { parent = null; }
 
 
    
// account for any scrolled ancestors
     while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML'){     
        pos[
0-= parent.scrollLeft;
        pos[
1-= parent.scrollTop;
        
if (parent.parentNode) { parent = parent.parentNode; }
        
else { parent = null; }
    }
    
return {x:pos[0], y:pos[1]};





posted @ 2008-09-15 01:02 G_G 阅读(434) | 评论 (0)编辑 收藏


上面加上我的注解(希望能对大家理解有帮助):
/**************************************************
 * dom-drag.js
 * 09.25.2001
 * www.youngpup.net
 * Script featured on Dynamic Drive (
http://www.dynamicdrive.com) 12.08.2005
 **************************************************
 * 10.28.2001 - fixed minor bug where events
 * sometimes fired off the handle, not the root.
   *    注解:  Skynet
 *    email : liukaiyi@gmail.com
 *        blog : www.blogjava.net/Good-Game
 *************************************************
*/

var Drag 
= {

    obj : 
null,
    
    
/* api 说明: 
    *     方法调用可以参考:
http://www.dynamicdrive.com/dynamicindex11/domdrag/
    *         o 拖拽 Handle 
    *        oRoot 被拖拽 element  (可选, 默认不填 o为被拖拽对象  type=object)
    *        minX, maxX, minY, maxY 限制拖拽范围 (可选,默认不填为全屏 type=int )
    *         bSwapHorzRef, bSwapVertRef 判断是否允许 横,纵向拖拽(可选,默认不填无限制 type=boolean )
    *     fXMapper(x), fYMapper(y)  为外置函数 拖拽效果体现前调用 (x,y) 为当前element位置(可选 type=Function)
    
*/
    init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
    {
        
/* 拖拽事件 挂载  (本js 主线 生命周期 描述)
        *    1. 预定 o.onmousedown事件触发运行  Drag.start。
        *    2. 触发 element-> onmousedown->Drag.start
        *        2.1    先得到 element 当前"改变初"位置,记入到 o.lastMouseX ;o.lastMouseY,挂载Drag.obj,Darp.root 为当前 element。
        *        2.2     预定 document.onmousemove    = Drag.drag; document.onmouseup = Drag.end。
        *    3.  触发 document.onmousemove 运行 Drag.drag-> 拖拽效果体现。
        *    4.  触发 document.onmouseup 运行 Drag.end-> 挂载 document.onmousemove;document.onmouseup;Drag.obj取消。
        
*/
        o.onmousedown 
= Drag.start;
        
        
//是否能 横,纵向拖拽
        o.hmode            = bSwapHorzRef ? false : true ;
        o.vmode            
= bSwapVertRef ? false : true ;
        
//挂载 o.root 
        o.root = oRoot && oRoot != null ? oRoot : o ;
        
        
if (o.hmode  && isNaN(parseInt(o.root.style.left  ))) o.root.style.left   = "0px";
        
if (o.vmode  && isNaN(parseInt(o.root.style.top   ))) o.root.style.top    = "0px";
        
if (!o.hmode && isNaN(parseInt(o.root.style.right ))) o.root.style.right  = "0px";
        
if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";
        
        
// 限定 移动范围
        o.minX    = typeof minX != 'undefined' ? minX : null;
        o.minY    
= typeof minY != 'undefined' ? minY : null;
        o.maxX    
= typeof maxX != 'undefined' ? maxX : null;
        o.maxY    
= typeof maxY != 'undefined' ? maxY : null;

        o.xMapper 
= fXMapper ? fXMapper : null;
        o.yMapper 
= fYMapper ? fYMapper : null;
        
        
/*自定义拖拽-事件添加(相当于我们在java中的 抽象类 中未实现的方法  比如:
        *    obj.onDrag = function(x, y) {
         *        scrolldiv.style.top=y * (-1) +"px";
        *    }
        
*/
        o.root.onDragStart    
= new Function();
        o.root.onDragEnd    
= new Function();
        o.root.onDrag        
= new Function();
    },

    
//由 function init >> o.onmousedown    = Drag.start;
    start : function(e)
    {
        
//得到被拖拽 element
        var o = Drag.obj = this;
        e 
= Drag.fixE(e);
        
        
//element 移动初位置 
        var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
        var x 
= parseInt(o.hmode ? o.root.style.left : o.root.style.right );
        
//可能的外置函数调用
        o.root.onDragStart(x, y);
        
//event 初位置 记入
        o.lastMouseX    = e.clientX;
        o.lastMouseY    
= e.clientY;
        
        
if (o.hmode) {
            
if (o.minX != null)    o.minMouseX    = e.clientX - x + o.minX;
            
if (o.maxX != null)    o.maxMouseX    = o.minMouseX + o.maxX - o.minX;
        } 
else {
            
if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
            
if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
        }

        
if (o.vmode) {
            
if (o.minY != null)    o.minMouseY    = e.clientY - y + o.minY;
            
if (o.maxY != null)    o.maxMouseY    = o.minMouseY + o.maxY - o.minY;
        } 
else {
            
if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
            
if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
        }
        
        
/*>>>>>>>>>>>比较关键的挂载<<<<<<<<<<<<<<
        *    
        *    使用 document.onmousemove 事件 而不使用 element的,是应为当拖动太快,可能会脱离element.
        
*/
        document.onmousemove    
= Drag.drag;
        document.onmouseup        
= Drag.end;

        
return false;
    },

    
//由 function start>> document.onmousemove    = Drag.drag;
    drag : function(e)
    {
        e 
= Drag.fixE(e);
        var o 
= Drag.obj;

        var ey    
= e.clientY;
        var ex    
= e.clientX;
        
//得到 element 当前位置(vmode,hmode判断是否可以横纵向拖拽)
        var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
        var x 
= parseInt(o.hmode ? o.root.style.left : o.root.style.right );
        var nx, ny;
        
        
if (o.minX != null) ex = o.hmode ? Math.max(ex, o.minMouseX) : Math.min(ex, o.maxMouseX);
        
if (o.maxX != null) ex = o.hmode ? Math.min(ex, o.maxMouseX) : Math.max(ex, o.minMouseX);
        
if (o.minY != null) ey = o.vmode ? Math.max(ey, o.minMouseY) : Math.min(ey, o.maxMouseY);
        
if (o.maxY != null) ey = o.vmode ? Math.min(ey, o.maxMouseY) : Math.max(ey, o.minMouseY);
        
        
//本js中 最主要的地方: 
        
//得到 鼠标移动 向量 drap(x,y) = fun_drap:event(x,y) - fun_start:event(x,y)
        
//并于 得到拖拽效果:  element(x,y) + drap(x,y) 
        nx = x + ((ex - o.lastMouseX) * (o.hmode ? 1 : -1));
        ny 
= y + ((ey - o.lastMouseY) * (o.vmode ? 1 : -1));

        
if (o.xMapper)        nx = o.xMapper(y)
        
else if (o.yMapper)    ny = o.yMapper(x)
        
        
//效果体现
        Drag.obj.root.style[o.hmode ? "left" : "right"= nx + "px";
        Drag.obj.root.style[o.vmode 
? "top" : "bottom"= ny + "px";
        Drag.obj.lastMouseX    
= ex;
        Drag.obj.lastMouseY    
= ey;
        
//调用外置函数
        Drag.obj.root.onDrag(nx, ny);
        
return false;
    },
    
    
//由 function start>> document.onmouseup        = Drag.end;
    end : function()
    {
        document.onmousemove 
= null;
        document.onmouseup   
= null;
        Drag.obj.root.onDragEnd(    parseInt(Drag.obj.root.style[Drag.obj.hmode 
? "left" : "right"]), 
                                    parseInt(Drag.obj.root.style[Drag.obj.vmode 
? "top" : "bottom"]));
        Drag.obj 
= null;
    },
    
    
//跨 浏览器 得到 event
    fixE : function(e)
    {
        
if (typeof e == 'undefined') e = window.event;
        
if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
        
if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
        
return e;
    }
};

posted @ 2008-09-14 11:28 G_G 阅读(2675) | 评论 (0)编辑 收藏


参考:
http://neil-jh.javaeye.com/blog/199345

效果:
  • google



  • <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding
    ="UTF-8"%>
    <%@taglib uri="/struts-tags" prefix="s"%>
    <%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
      
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <li>
        
    <!-- 类中静态变量  -->
        
    <s:property value="%{@action.SsdAction@GOOD}"/>
          
        
    <!-- 调用 方法 -->
          
    <s:set name="num" value="20" />
        
    <s:set name="listData" value="%{ ssdMethod.getBeans(#num)  }" />
        
        
    <!-- 和 jstl 配合使用 -->
        
    <select>
            
    <c:forEach var="btmp" items="${listData}">
                
    <option value="${btmp.id} }">${btmp.name}</option>
            
    </c:forEach>
        
    </select>
        
        
    <!-- 调用枚举类 
            public enum Type {
                //id value : gget sset 
                g1(1,"test1"),
                g2(2,"test2"),
                g3(3,"test3");
                .
        
    -->
        
    <s:select list="%{ @myEnum.Type@values() }" listKey="id" listValue="value" />

        
    <!-- 循环遍历 添加逻辑 ..{?#this.id>2 } -->
        
    <s:select list="%{ @myEnum.Type@values().{?#this.id>2 } }" listKey="id" listValue="value" />

    </li>


    </body>
    </html>

    posted @ 2008-09-11 16:04 G_G 阅读(431) | 评论 (0)编辑 收藏

    haptic 触觉 
       --of or relating to the sensation of touch.
       --关于             触动                         感觉。

                       haptics is the science of applying tactile sensation to humen interaction with computers .
    字面翻译:  触觉论   是  一种  科学        申请                 触觉                   与  人类       互动            和       电脑
                    : 触觉论 是将人类的接触感觉应用与计算机连接的一门科学。


           A haptic device is one that involves physical contact between the computer and the user .
    》》一个触觉设备            是一个         涉及      物理        连接       在                   电脑               和    人
    》》一个触觉设备包含 计算机和用户之间的物理连接

         usually through an input/output device,such as a joystick or   data gloves ,that senses the body,s movements.
    》》通常     通过         一个 输入/输出  设备   , 比如     一个 操纵杆 或    数据手套 , 这些设备     感觉   身体的移动 。

    posted @ 2008-09-10 23:14 G_G 阅读(158) | 评论 (0)编辑 收藏

    主页:http://code.google.com/apis/protocolbuffers/docs/overview.html

    testProto.proto

    package foo.bar;
    option java_package 
    = "com.proto";

    message Person {
      required string name 
    = 1;
      required int32 id 
    = 2;
      optional string email 
    = 3;

      enum PhoneType {
        MOBILE 
    = 0;
        HOME 
    = 1;
        WORK 
    = 2;
      }

      message PhoneNumber {
        required string number 
    = 1;
        optional PhoneType type 
    = 2 [default = HOME];
      }

      repeated PhoneNumber phone 
    = 4;
    }

    运行命令
    '/home/kaiyi/proto/bin/protoc'  --java_out=src testProto.proto 


    使用(  本类可用,builder 可改,开用但 list 删除要使用比较郁闷的方法删除!)
    package unit;

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.List;

    import com.google.protobuf.InvalidProtocolBufferException;
    import com.proto.TestProto;
    import com.proto.TestProto.Person;
    import com.proto.TestProto.Person.PhoneNumber;

    public class Main {
        
    public static void main(String[] args) throws InvalidProtocolBufferException {
            
    //空创建
            Person.Builder builder = Person.newBuilder();
            builder.setName(
    "liukaiyi");
            builder.setId(
    1);
            
            builder.setEmail(
    "email");
            
            PhoneNumber.Builder pBuilder1 
    = PhoneNumber.newBuilder();
            pBuilder1.setNumber(
    "1");
            pBuilder1.setType(TestProto.Person.PhoneType.MOBILE);
            
            
            PhoneNumber.Builder pBuilder2 
    = PhoneNumber.newBuilder();
            pBuilder2.setNumber(
    "2");
            pBuilder2.setType(TestProto.Person.PhoneType.HOME);
            
            
            
            builder.addPhone(pBuilder1);
            builder.addPhone(pBuilder2);
           
    //此处为存储到数据库 或 传输!
    byte[] data = builder.build().toByteArray() ;
            
    for(byte tb : data )
                System.out.print( (
    char)tb );
            
            
            
    //组建
            Person person = Person.parseFrom(data);
            Person.Builder builder2 
    = Person.newBuilder(person);
            builder2.setEmail(
    "test");
            
            PhoneNumber.Builder pBuilder3 
    = PhoneNumber.newBuilder();
            pBuilder3.setNumber(
    "3");
            pBuilder3.setType(TestProto.Person.PhoneType.HOME);
            builder2.addPhone(pBuilder3);
           
    //这 我最不明白的地方 , list 这 只能 使用 这种方法才可以删除 list ????
            List list = new ArrayList(builder2.getPhoneList());
            List<PhoneNumber> ltmp =  builder2.getPhoneList() ;
            for(int i=0;i<list.size();i++ ){
                if(ltmp.get(i).getNumber().equals("2"))
                    list.remove( ltmp.get(i) ) ;
            }
            builder2.clearPhone().addAllPhone(list);

            builder2.clearEmail();

            System.out.println(list.size());
            System.out.println();
            
    byte[] data2 = builder2.build().toByteArray() ;
            
    for(byte tb : data2 )
                System.out.print( (
    char)tb );
            
            
            
            
        }
    }



    posted @ 2008-09-08 17:01 G_G 阅读(2756) | 评论 (0)编辑 收藏



    <? xml version="1.0" encoding="utf8"  ?>
    <% @ page language = " java "  contentType = " text/html; charset=utf8 "  pageEncoding = " utf8 " %>
    <% @taglib uri = " /WEB-INF/struts-tags.tld "  prefix = " s " %>
    <% @taglib uri = " /WEB-INF/ljw.tld "  prefix = " ljw " %>
        

    <% @page import = " com.ljw.bean.CorrectionWrong " %>
    <% @page import = " com.ljw.bean.CorrectionWrong.State " %>
    <% @page import = " com.opensymphony.xwork2.util.ValueStack " %> < html  xmlns ="http://www.w3.org/1999/xhtml" >
    < head >
    < meta  http-equiv ="Content-Type"  content ="text/html; charset=utf8"   />
    < title > Insert title here </ title >
    < script  type ="text/javascript"  src ="../js/prototype.js" ></ script >
    < script  type ="text/javascript"  src ="../js/jsMsg.jsp" ></ script >
    < script  type ="text/javascript"  src ="../js/comm.js" ></ script >
    < SCRIPT  language =JavaScript  src ="../js/supertable/dialog.js"  type =Text/JavaScript ></ SCRIPT >
    </ head >
    < body >
    < div  id ="communityDiv" >
    < s:set  name ="" ></ s:set >
    < s:iterator  id ="d"  value ="%{pageList.objectList}" >
        用户名字:
    < s:property  value ="#d.userInfo.userName" />< br >
        url:
    < s:property  value ="#d.url" />< br >
        状态:
    < s:property  value ="#d.ecwState.value" />< br >
        纠错:
    < s:property  value ="#d.cwArticle" /></ br >
        编辑输入:
    < textarea  rows ="10"  cols ="50"  id ='<s:property  value ="#d.id" /> ' > < s:property  value ="#d.boardmasterDesc" /></ textarea >
        
    < input  type ="button"  onclick ="getUpdate('<s:property value=" #d.id" /> ')"/>
    < hr />
    </ s:iterator >
    < br />
    < ljw:pages  value ="%{pageList.pages}"  javaScript ="loadCommunityListUrl" />
    </ div >
    </ body >
    < script  type ="text/javascript" >
    function  loadCommunityListUrl(url) {
         $('communityDiv').innerHTML 
    =  pageLoadingCenter;
          
    var  urls  =  getActionName(url);
          
    var  pars  =  getActionPars(url);
          
    var  myAjax  =   new  Ajax.Updater( " communityDiv " , urls, {method: 'post', parameters: pars});
        }
    var  request  =   false ;
    try  {
      request 
    =   new  XMLHttpRequest();
    catch  (trymicrosoft) {
      
    try  {
        request 
    =   new  ActiveXObject( " Msxml2.XMLHTTP " );
      } 
    catch  (othermicrosoft) {
        
    try  {
          request 
    =   new  ActiveXObject( " Microsoft.XMLHTTP " );
        } 
    catch  (failed) {
          request 
    =   false ;
        }  
      }
    }
    if  ( ! request)
      alert(
    " Error initializing XMLHttpRequest! " );
      
    var  _robj  =   null  ;
    function  getUpdate(ki) {
      _robj 
    =  document.getElementById(ki) ;
      
    var  urls  = 'cwmain. do ';
      
    var  pars  =  'c = ajaxUpdateByBoardMaster & cwId = ' + ki + ' & boardMasterDesc = ' + _robj.value ;
      request.open(
    " POST " , urls,  true );
      request.setRequestHeader(
    " Cache-Control " , " no-cache " );
      request.setRequestHeader(
    " content-type " , " application/x-www-form-urlencoded " );
      request.send(pars);
      request.onreadystatechange 
    =
     updatePage;
    }




    function  updatePage() {
        
    if  (request.readyState  ==   4 ) {
            
    if  (request.status  ==   200   ||  request.status == 0  ) {
                alert(request.responseText);
                eval('
    var  ajaxData  = ' + request.responseText);
                
    if ( ajaxData.isUpdate ){
                     alert( '更新成功!' );
                }
    else {
                    alert( '更新不成功!' );
                }
            } 
        }
    }



    </ script >
    </ html >

    posted @ 2008-08-16 18:15 G_G 阅读(566) | 评论 (2)编辑 收藏



    < html >   
    < head >< title > 拖动效果函数演示 by Longbill.cn </ title >   
    < style >   

    div  
    {   
        position 
    :  absolute ;   
        background-color 
    :  #c3d9ff ;   
        margin 
    :  0px ;   
        padding 
    :  5px ;   
        border 
    :  0px ;   
        width 
    :  100px ;   
        height
    : 100px ;   
    }   
    </ style >

    </ head >   
    < body >   
        
        
    < script >   
    function  drag(o,s)  
    {  
        
    if  ( typeof  o  ==   " string " ) o  =  document.getElementById(o);  
        o.orig_x 
    =  parseInt(o.style.left)  -  document.body.scrollLeft;  
        o.orig_y 
    =  parseInt(o.style.top)  -  document.body.scrollTop;  
        o.orig_index 
    =  o.style.zIndex;  
              
        o.onmousedown 
    =   function (a)  
        {  
            
    this .style.cursor  =   " move " ;  
            
    this .style.zIndex  =   10000 ;  
            
    var  d = document;  
            
    if ( ! a)a = window.event;  
            
    var  x  =  a.clientX + d.body.scrollLeft - o.offsetLeft;  
            
    var  y  =  a.clientY + d.body.scrollTop - o.offsetTop;  
            
    // author: www.longbill.cn  
            d.ondragstart  =   " return false; "   
            d.onselectstart 
    =   " return false; "   
            d.onselect 
    =   " document.selection.empty(); "   
                      
            
    if (o.setCapture)  
                o.setCapture();  
            
    else   if (window.captureEvents)  
                window.captureEvents(Event.MOUSEMOVE
    | Event.MOUSEUP);  

            d.onmousemove 
    =   function (a)  
            {  
                
    if ( ! a)a = window.event;  
                o.style.left 
    =  a.clientX + document.body.scrollLeft - x;  
                o.style.top 
    =  a.clientY + document.body.scrollTop - y;  
                o.orig_x 
    =  parseInt(o.style.left)  -  document.body.scrollLeft;  
                o.orig_y 
    =  parseInt(o.style.top)  -  document.body.scrollTop;  
            }  

            d.onmouseup 
    =   function ()  
            {  
                
    if (o.releaseCapture)  
                    o.releaseCapture();  
                
    else   if (window.captureEvents)  
                    window.captureEvents(Event.MOUSEMOVE
    | Event.MOUSEUP);  
                d.onmousemove 
    =   null ;  
                d.onmouseup 
    =   null ;  
                d.ondragstart 
    =   null ;  
                d.onselectstart 
    =   null ;  
                d.onselect 
    =   null ;  
                o.style.cursor 
    =   " normal " ;  
                o.style.zIndex 
    =  o.orig_index;  
            }  
        }  
          
        
    if  (s)  
        {  
            
    var  orig_scroll  =  window.onscroll ? window.onscroll: function  (){};  
            window.onscroll 
    =   function  ()  
            {  
                orig_scroll();  
                o.style.left 
    =  o.orig_x  +  document.body.scrollLeft;  
                o.style.top 
    =  o.orig_y  +  document.body.scrollTop;  
            }  
        }  
    }  
    </ script >   

    < div  id ="div1"  style ="left:10px;top:10px;" > div1:我可以被拖动 </ div >   
    < div  id ="div2"  style ="left:120px;top:10px;background-color : #f3d9ff" > div2:来拖我呀 </ div >   
    < div  id ="div3"  style ="left:230px;top:10px;background-color : #c3ffff" > div3:我随便你拖 </ div >   
    < div  id ="div4"  style ="left:10px;top:120px;background-color : #c3d944" > div4:我可以随窗口滑动,把我拖到最下面,然后滚动网页看看 </ div >   
    < div  id ="div5"  style ="left:120px;top:120px;background-color : #f3d944" > 作者: Longbill
    < href =http://www.longbill.cn  target =_blank > www.longbill.cn </ a >   
    </ div >   
    < div  id ="div6"  style ="left:230px;top:120px;background-color : #e3f944;width:200px;" > 参数说明:
      
    drag(obj [,scroll]);
      
    obj:对象的id或对象本身;
      
    scroll(可选):对象是否随窗口拖动而滑动,默认为否
      
    鼠标右键查看源代码  
    </ div >   


    < script >   
    drag(
    " div1 " );  
    drag(
    " div2 " );  
    drag(
    " div3 " );  
    drag(
    " div4 " , 1 );  
    drag(
    " div5 " , 1 );  
    drag(
    " div6 " , 1 );  


    </ script >   

    </ body >  

    posted @ 2008-08-16 17:22 G_G 阅读(319) | 评论 (0)编辑 收藏

    demo 下载: http://www.blogjava.net/Files/Good-Game/div_.rar
    运行 div.html


    html:
    <html>
    <head>
    <script type="text/javascript" src="prototype.js"></script>
    <script type="text/javascript" src="drag.js"></script>
    <META http-equiv=Content-Type content="text/html; charset=utf8">
    </head>

    <body>
    <a
        
    onclick="getDrag(event,
                         'ajax.html?id=5',
                         'position:absolute;display:none;left:50;  top:10;  z-index:1000;  padding:0px;  background-color:#FFFFCC;  color:#201000;  font-size:12px;  border:5px   solid   #284860;',
                          'background-color:#CCFFCC;')"
    >测试使用(请点击)
    </a>
    </body>
    </html>



    js.
    // 参考 : http://hi.baidu.com/foxlively/blog/item/0ce341b3f0c050a2d8335af8.html
    //
     使用 : prototype.js 
    //
    使用方法 
    var _div1 = null;
    var _style2 = null;

    function getDrag(event, url,divId, style1, style2) {
        
        
    if (style2)
            _style2 
    = style2;
        
    else
            _style2 
    = "";
        
        
    if(divId==null)
            _div1 
    = document.createElement("div");
        
    else
            _div1 
    = document.getElementById(divId);
        
        _div1.style.position 
    = 'absolute';
        _div1.style.display 
    = 'none';

        
    if (_div1.style.border == null || _div1.style.border == '')
            _div1.style.border 
    = '1px solid #284860';

        
    if (style1)
            _div1.setAttribute('style', style1);
        actionAjax(url);
        document.body.appendChild(_div1);
        showByEvent(event, _div1);
    }


    function getActionName(url) {
        
    var question = url.indexOf("?");
        
    if (question > 0) {
            
    return url.substring(0, question);
        }
        
    else {
            
    return url;
        }
    }

    function getActionPars(url) {
        
    var question = url.indexOf("?");
        
    if (question > 0) {
            
    return url.substring(question+1, url.length);
        }
        
    else {
            
    var d = new Date();
            
    var t = d.getTime();
            
    return "timestamp="+t;
        }
    }


    function actionAjax(url) {
        
    var urls = getActionName(url);
        
    var pars = getActionPars(url);
        
    var myAjax = new Ajax.Updater(_div1, urls, {
            method :'post',
            parameters :pars,
            onComplete :_action
        });
    }

    function _action(req) {
        
    var varhtml = "<div id=\"_drag_div\" style=\""
                + _style2
                + 
    "\" align=\"right\"><br/><a href=\"javascript:;\" onclick=\"this.parentNode.parentNode.style.display='none';this.parentNode.parentNode.innerHTML=null;\">[关闭]</a></div>"
                
    + req.responseText
                
    +"<div id=\"_drag_div\" style=\""
                + _style2
                + 
    "\" align=\"left\"><br/><a href=\"javascript:;\" onclick=\"this.parentNode.parentNode.style.display='none';this.parentNode.parentNode.innerHTML=null;\">[关闭]</a></div>"
                ;
        
    //varhtml =  varhtml.replace(/form[ ]+action=["'](.*)["']/gi, "form action=\"javascript:actionAjax('$1');\" ")  ;
                                  
        _div1.innerHTML 
    = varhtml;
        
    var drag = new Drag();
        
    // drag.build(div1);//拖动本身
        drag.build(_div1, _div1.firstChild);// 通过一个对象拖动另一个对象
        //drag.build(_div1, _div1.lastChild);// 通过一个对象拖动另一个对象
    }


    function showByEvent(event, useDiv) {
        useDiv.style.display 
    = "";
        useDiv.style.left 
    = mouseX(event);
        useDiv.style.top 
    = mouseY(event);
    }


    function mouseX(ev) {
        
    if( ev == null )ev = event || window.event ;
        
    if(ev.clientX){
            
    return ev.clientX + document.body.scrollLeft - document.body.clientLeft;
        }
    else if(ev.pageX){
            
    return ev.pageX;
        }
    }
    function mouseY(ev) {
        
    if( ev == null )ev = event || window.event ;
        
    if(ev.clientY){
            
    return ev.clientY + document.body.scrollTop - document.body.clientTop ;
        }
    else if(ev.pageX){
            
    return ev.pageY;
        }
    }

    function Drag() {
    }
    Drag.prototype.baseX 
    = 0;
    Drag.prototype.baseY 
    = 0;
    Drag.prototype.lastX 
    = 0;
    Drag.prototype.lastY 
    = 0;
    Drag.prototype.nowX 
    = 0;
    Drag.prototype.nowY 
    = 0;
    Drag.prototype.obD 
    = null;
    Drag.prototype.obM 
    = null;
    Drag.prototype.build 
    = function(_obD, _obM) {
        
    if (_obM) {
            Drag.prototype.obM 
    = _obM;
        } 
    else {
            Drag.prototype.obM 
    = _obD;
        }
        Drag.prototype.obD 
    = _obD;
        Drag.prototype.obM.onmousedown 
    = function(event) {
            Drag.prototype.lastX 
    = mouseX(event);
            Drag.prototype.lastY 
    = mouseY(event);
            Drag.prototype.baseX 
    = Drag.prototype.obD.style.left;
            Drag.prototype.baseY 
    = Drag.prototype.obD.style.top;
            
    this.onmousemove = function(event) {
                Drag.prototype.nowX 
    = mouseX(event);
                Drag.prototype.nowY 
    = mouseY(event);
                Drag.prototype.obD.style.left 
    = (parseFloat(Drag.prototype.baseX)
                        
    + Drag.prototype.nowX - Drag.prototype.lastX)
                        
    + "px";
                Drag.prototype.obD.style.top 
    = (parseFloat(Drag.prototype.baseY)
                        
    + Drag.prototype.nowY - Drag.prototype.lastY)
                        
    + "px";
            }
        }
        Drag.prototype.obM.onmouseup 
    = function(event) {
            
    // obD.onmouseup = null;
            Drag.prototype.obD.onmousemove = null;
            Drag.prototype.obM.onmousemove 
    = null;
        }
        Drag.prototype.obM.onmouseout 
    = function() {
            
    // obM.onmouseup = null
            Drag.prototype.obM.onmousemove = null;
            Drag.prototype.obD.onmousemove 
    = null;
        }
    }

    posted @ 2008-08-14 14:11 G_G 阅读(1515) | 评论 (1)编辑 收藏

    参考:http://www.programbbs.com/bbs/view25-12320-1.htm
    但上面的 一些sql语句 ,有查询时间问题,在此我已于改正了并希望和大家分享。

    ---------自我感觉 第四题 很不错!-------------


    ----------------------------------------------------------------------
    第一题(只要重复的都要 输出)
    ----------------------------------------------------------------------
    create table c (id int );
    insert into c values (1),(2),(3),(4),(3),(5),(6),(1);
    结果:
        
    select id from c group by id having count(id)>1 ;
    附加(查询重复最多的倒排)
    select bid,count(bid) as cu from tb group by bid having count(bid)>1  order by cu  desc





    ----------------------------------------------------------------------
    第二题(报表查询横向输出)
    查询后的结果:
    Create table d(id int,name varchar(50));
    insert into d values(1,'gly');
    insert into d values(2,'ptgly');
    insert into d values(3,'ybgly');
    insert into d values(4,'ptgly');
    insert into d values(5,'ybgly');
    +---+-----+------+
    |gly|ptgly|ybgly |     
    |---+-----+------+-
    |1  |2    |2     |
    +---+-----+------+
    -----------------------------------------------------------------------
    select 
        
    sum(case when name='gly' then 1 else 0 end ) as gly  ,
        
    sum(case when name='ptgly' then 1 else 0 end ) as ptgly  ,
        
    sum(case when name='ybgly' then 1 else 0 end ) as ybgly  
    from d ;



    第三题
    可以根据上面 2,4 可以得出 。
    下面我们详细说下 4题。


    -----------------------------------------------------------------------
    第四题(复杂组合查询!)
    create table table_a (No int, No2 int,num double,itime date);
    insert into table_a values
         (1234,567890,33.5,'2004-12-21'),
         (1234,598701,44.8,'2004-11-21'),
         (1234,598701,45.2,'2004-10-01'),
         (1234,567890,66.5,'2004-9-21'),
         (3456,789065,22.5,'2004-10-01'),
         (3456,789065,77.5,'2004-10-27'),
         (3456,678901,48.5,'2004-12-21');
    按月统计销售表中货物的销售量数
    查询结果如下:
      No, No2 ,   九月,  十月,十一月,十二月
    1234,567890, 66.5 ,  0 ,  0  ,  33.5
    1234,598701,  0   , 45.2, 44.8, 0
    3456,789065, 0  ,  100,  0  ,  0
    3456,678901, 0 ,    0,    0  ,  48.5
    -----------------------------------------------------------------------
    //当然也可以 使用mysql 时间函数 在软件编辑时 你可以输入 String[] 并根据数据动态拼写 sql( case部分!! )
    //这个 例子很好 哦!报表可以一句sql 得出!

    select NO,NO2,
        
    sum(case  when itime like '2004-%9%' then num else 0 endas 9M,
        
    sum(case  when itime like '2004-10%' then num else 0 endas 10M,
        
    sum(case  when itime like '2004-11%' then num else 0 endas 11M,
        
    sum(case  when itime like '2004-12%' then num else 0 endas 12M
    from table_a group by no,no2 order by no,no2 ;


    --------------------------------------------------------------
    第五题
    代码,名称
    1     a
    2     b
    11    c
    (代码11表示为1的下级)
    我要通过一条句子,得出如下结果:

    代码,名称,有无下级
    1     a     有
    2     b     无
    11    c     无


    Create table TabTest(t_Code varchar(10),t_Name varchar(10));
    insert into TabTest values('1','a');
    insert into TabTest values('2','b');
    insert into TabTest values('11','c');
    --------------------------------------------------------------
    select tt1.t_Code,tt1.t_name,( 
         
    case 
                 
    when exists (select 1 from tabtest tt2 
                                           
    where tt2.t_code like CONCAT(tt1.t_code,'%'and 
                                            tt2.t_code 
    <> tt1.t_code )  then 'you' 
                 
    else 'wu'
          
    end ) as you_wu
    from tabtest  tt1 ;








    posted @ 2008-08-09 22:00 G_G 阅读(3465) | 评论 (9)编辑 收藏

    仅列出标题
    共16页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last