Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中使用onclick方法_Javascript - Fatal编程技术网

在Javascript中使用onclick方法

在Javascript中使用onclick方法,javascript,Javascript,我是Javascript新手,正在做练习。我只是尝试使用onclick,当点击FIGHT按钮时,FIGHT函数就会运行。由于某些原因,fight函数没有运行,但我可以通过DOM获取按钮 HTML 目标4:任务-决斗III 点击开始战斗 Javascript /* Name: Walker Kinne Date: 12/1/13 Assignment: Goal1: Assignment: Duel1 */ (function(){

我是Javascript新手,正在做练习。我只是尝试使用onclick,当点击FIGHT按钮时,FIGHT函数就会运行。由于某些原因,fight函数没有运行,但我可以通过DOM获取按钮

HTML


目标4:任务-决斗III

点击开始战斗
Javascript

    /* 

    Name: Walker Kinne
    Date: 12/1/13
    Assignment: Goal1: Assignment: Duel1

    */

    (function(){


        console.log('program starts');

        var button = document.getElementsByTagName('a');

        console.log(button);

        button.onclick = function(e){


            fight();

            e.preventDefault();
            return false;
        };


    function fight(){
        console.log("in the fight function");

            var fighter1 = {name:'Spiderman', damage:20, health: 100};
            var fighter2 = {name:'Batman', damage:20, health: 100};


           var minDamage1 = fighter1.damage * .5;
           var minDamage2 = fighter2.damage * .5;

           var f1 = Math.floor(Math.random()*(fighter1.damage - minDamage1)+minDamage1);
           var f2 = Math.floor(Math.random()*(fighter2.damage - minDamage2)+minDamage2);

           console.log(fighter1.name);


          // console.log(f1);
           //console.log(f2);



           fighter1.health -=f2;
           fighter2.health -=f1;

           console.log("player1:" + fighter1.health);
           console.log("player2:" + fighter2.health);

            var a = fighter1.health;

    };
           //console.log(playerOneName+":"+playerOneHealth+playerTwoName+":"+playerTwoHealth);
            //var results = winnerCheck();

           //console.log(results);



           /*if(results === "no winner"){
               document.getElementById("kabal").
               //alert(fighter1[0]+":"+fighter1[2]+" ROUND"+round+" OVER"+fighter2[0]+":"+fighter2[2]);

            }else{
               alert(results);
               break;
           }

    */



        /* End of fight function */



    /*
    function winnerCheck(){
        console.log("winner check");
        var result = "no winner";

        if(fighter1[2]<1 && fighter2[2]<1){
            result = "You Both Die";
        }else if(fighter1[2]<1){
            result= fighter2[0] + " wins!!";
        }else if(fighter2[2]<1){
            result = fighter1[0] + " wins!!";
        };

        return result;
    };



    \/******** Program Starts ********/





    })();
/*
姓名:沃克·金恩
日期:2013年12月1日
任务:目标1:任务:决斗1
*/
(功能(){
log(“程序启动”);
var button=document.getElementsByTagName('a');
控制台日志(按钮);
button.onclick=函数(e){
战斗();
e、 预防默认值();
返回false;
};
函数fight(){
console.log(“在战斗功能中”);
var fighter1={name:'Spiderman',伤害:20,生命值:100};
var fighter2={name:'Batman',伤害:20,生命值:100};
var minDamage1=fighter1.damage*.5;
var minDamage2=fighter2.damage*.5;
变量f1=Math.floor(Math.random()*(fighter1.damage-minDamage1)+minDamage1);
变量f2=数学地板(数学随机()*(fighter2.damage-minDamage2)+minDamage2);
console.log(fighter1.name);
//控制台日志(f1);
//控制台日志(f2);
fighter1.health-=f2;
fighter2.health-=f1;
console.log(“player1:+fighter1.health”);
console.log(“player2:+fighter2.health”);
var a=战斗1.健康;
};
//log(playerName+“:”+playerHealth+playerWoName+“:”+playerWoHealth);
//var results=winnerCheck();
//控制台日志(结果);
/*如果(结果=“无赢家”){
document.getElementById(“kabal”)。
//警报(fighter1[0]+“:”+fighter1[2]+“回合”+ROUND+“超过”+fighter2[0]+“:“+fighter2[2]);
}否则{
警报(结果);
打破
}
*/
/*战斗结束功能*/
/*
函数winnerCheck(){
控制台日志(“赢家检查”);
var result=“无赢家”;

如果(fighter1[2]
button=document.getElementsByTagName('a');
返回一个元素数组。请注意,函数名为“按标记名获取元素”。要绑定事件,需要使用单个元素,而不是元素数组,即使该数组恰好只包含一个元素

而不是将属性添加到数组中

 button = document.getElementsByTagName('a');
 button.onclick = function(e){
您需要这样做,这会将
onclick
处理程序添加到第一个(也是唯一的)
a

 buttons = document.getElementsByTagName('a');
 buttons[0].onclick = function(e){

请注意,一旦添加第二个链接,就需要更具体的代码,然后<代码> GETelEngsByTyType < /代码>,因为您的<代码>按钮数组将包含多个元素。请考虑将唯一ID添加到要查找的按钮中,并使用<代码> GETelEnMyByID < /C> > .< /P> < P>我将向T添加唯一标识符。他的代码反对getElementsByTagName(a),因为它不是唯一的

//这段代码应该可以帮助你

            var button = document.getElementById('unique identifier');

    button.onclick = function(e){

               yourFN();
                //dont forget your e.prevent, false info here


            };

@哈迪:不,这完全是错误的。
fight
在它所在的位置就可以了。A)它被提升到作用域的顶部,B)在调用
onclick
处理程序之前,它不会被评估,在将来的某个时候。
            var button = document.getElementById('unique identifier');

    button.onclick = function(e){

               yourFN();
                //dont forget your e.prevent, false info here


            };