首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

同一个事件在不同的点命中只能触发一次

2012-12-30 
同一个事件在不同的点击中只能触发一次,我要做的就是点击“+”的时候触发一次事件,但是在别的+号那里可以

同一个事件在不同的点击中只能触发一次
同一个事件在不同的点命中只能触发一次,我要做的就是点击“+”的时候触发一次事件,但是在别的"+"号那里可以用,不懂我的问题,可以在回复中说


function onclickBusiness(id){
if(id){
var xmlhttp=create();
xmlhttp.open("post","servlet/AjaxService");
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
        if(xmlhttp.status==200){
var doc=xmlhttp.responseXML.documentElement;
var rows = doc.getElementsByTagName("row");
var div = document.createElement("div");
div.setAttribute("style","margin-left:140px;font-size:12px;");
var imgid=$(id);//得到在那里在实现一个层
for(var i = 0;i<rows.length;i++){
var r = rows[i];//得到行
var i1=r.childNodes[0].firstChild.nodeValue;//得到编号
var i2=r.childNodes[1].firstChild.nodeValue;//得到名称
var i3=r.childNodes[2].firstChild.nodeValue;//得到父编号
var p=document.createElement("p");
var input =document.createElement("input");
input.value=i2;
input.name="checks";
p.setAttribute("style","margin-top:3px;");
input.type="checkbox";
p.innerHTML=i2;
div.appendChild(p);
p.appendChild(input);
$(id).style.display="block";
}
alert(i1);
imgid.appendChild(div);
}else{
alert("错误:"+xmlhttp.status);
};
};
};
xmlhttp.send("m=selectBusiness&&id="+id);

}

}
只是我的代码
[解决办法]
你也觉得我们会看不懂你的意思啊,LZ英明
[解决办法]
建议你讲业务,直接说要实现什么功能
[解决办法]
说实话,实在不明白LZ在说什么
[解决办法]
你判断下容器是否有内容不就行了,没有就执行ajax,有就返回

function onclickBusiness(id) {
    if (id) {
        var imgid = $(id); //得到在那里在实现一个层//////////获取容器的地方钓上来
        if (imgid.innerHTML != '') return////已经执行过ajax有内容,直接返回
        var xmlhttp = create();
        xmlhttp.open("post", "servlet/AjaxService");
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {
                    var doc = xmlhttp.responseXML.documentElement;
                    var rows = doc.getElementsByTagName("row");
                    var div = document.createElement("div");
                    div.setAttribute("style", "margin-left:140px;font-size:12px;");


                    //var imgid = $(id); //得到在那里在实现一个层//////
                    for (var i = 0; i < rows.length; i++) {
                        var r = rows[i]; //得到行
                        var i1 = r.childNodes[0].firstChild.nodeValue; //得到编号
                        var i2 = r.childNodes[1].firstChild.nodeValue; //得到名称
                        var i3 = r.childNodes[2].firstChild.nodeValue; //得到父编号
                        var p = document.createElement("p");
                        var input = document.createElement("input");
                        input.value = i2;
                        input.name = "checks";
                        p.setAttribute("style", "margin-top:3px;");
                        input.type = "checkbox";
                        p.innerHTML = i2;
                        div.appendChild(p);
                        p.appendChild(input);
                        $(id).style.display = "block";
                    }
                    alert(i1);
                    imgid.appendChild(div);
                } else {
                    alert("错误:" + xmlhttp.status);
                };
            };
        };
        xmlhttp.send("m=selectBusiness&&id=" + id);



    }

}


[解决办法]
LZ的意思是,多个+号引用同一个事件,但只能触发一次吗?
[解决办法]


function onclickBusiness(id,obj){
......//
    obj.onclick=null;
}


给所有+元素对象号都写   xxx.onclick=function(){var id=this.id;onclickBusiness(id,this);}
ok了
[解决办法]
定义一个计数参数 每次点“+”的时候加1,参数值为1的时候走你的事件程序 值为其他的时候跳过

热点排行