简体   繁体   中英

class selectors for jquery buttons not responsive

I'm incorporating jquery into an html file and have had some trouble getting a button to produce some action when I click on it. I've successfully managed to produce an alert for the event whereby I click on a div, but the button is a different matter.

<script type = "text/javascript">
alert("I am an alert box!"); 

$("div").click(function(){
    alert("test1");
}); 

$(".btn-green").click(function(){
    alert("test2");
});
    </script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<div class="page-content-wrapper">
    <div class="page-content">

        <!-- BEGIN PAGE HEADER-->
        <div class="row">

            <div class="col-md-12">
                <!-- BEGIN PAGE TITLE & BREADCRUMB-->
                <h3 class="page-title">
                Verification & Validation Tools <small>statistics and more</small>
                </h3>
                <ul class="page-breadcrumb breadcrumb">
                    <li>
                        <i class="fa fa-home"></i>
                        <a href="index.html">Home</a>
                        <i class="fa fa-angle-right"></i>
                    </li>
                    <li>
                        <a href="#">Users</a>
                    </li>
                    <li class="pull-right">
                        <div id="dashboard-report-range" class="dashboard-date-range tooltips" data-placement="top" data-original-title="Change overview date range">
                            <i class="fa fa-calendar"></i>
                            <span>
                            </span>
                            <i class="fa fa-angle-down"></i>
                        </div>
                    </li>
                </ul>
                <!-- END PAGE TITLE & BREADCRUMB-->
            </div>
        </div>
        <!-- END PAGE HEADER-->
<form class="form-horizontal" method="post" action="validateuser" >
    <div class="validate">
        <div class="form-group">
            <label class="col-md-2 control-label">Email Address to Activate</label>
            <div class="col-md-5"><input class="form-control" type="text" name="emailAddress"></input></div>
            <button type="submit" class="btn-green"><i class="fa fa-check"></i> Validate</button>
        </div>
    </div>
</form>
</div>

You're running the code before anything exists on the page

Use the jQuery ready wrapper https://api.jquery.com/ready/

<script>
$(function() {
  // put your code here
})
</script>

I think the problem may be that the document it is not fully loaded when you add those event listeners. Try to use:

$(function() {
   $("div").click(function(){
       alert("test1");
   }); 

   $(".btn-green").click(function(){
       alert("test2");
   });
});

Which is a shortcut for

$(document).ready(function() {
...
});

wrap your javascript code inside . your code maybe attach event before DOM load .

$(document).ready(function(){
   // code here
});

or add your code at end of page

Wrap the script code inside document.ready function like:

$(document).ready(function(){
  alert("I am an alert box!"); 

  $("div").click(function(){
    alert("test1");
  }); 

  $(".btn-green").click(function(){
    alert("test2");
  });
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM