类切换后调用错误的函数

时间:2014-09-24 14:13:31

标签: javascript jquery

我正面临这样的问题。我有一个类oldClass的div和用于切换div的类on click的函数。当类更改时单击div应该触发其他函数并调用alert,但是这种行为不会出现,似乎再次调用 previous 函数。我在jQuery很新,所以我错过了什么?

   <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
            <script type="text/javascript">
    $(function(){
         $('.oldClass').on('click',function(){
          $(this).toggleClass('oldClass').toggleClass('newClass');

            });
    });

    $(function(){
         $('.test').on('click',function(){
             alert('1111');  
            });
    });
        </script> 
        <style>
        .oldClass {
        border: 1px solid red;
    }
    .newClass {
        border: 3px solid green;
    }
    </style>
     </head>
      <body>
      <div class="oldClass" title="qwerty">qwerty
    </div>
      <body>
      </html>

2 个答案:

答案 0 :(得分:0)

您宣布document.ready两次... $(function(){});$(document).ready();的缩写,而不是javascript函数声明......

要创建一个功能,首先应该function foo(){ /* content goes here */ };var foo = function(){ /* content goes here */ };蚂蚁然后通过编写foo();

随时调用它

阅读有关JS函数here

的更多信息

选中此项以了解其运作方式:JSFIDDLE DEMO

  var alertTrigger = function (){

        $('.newClass').on('click',function(){
    $(this).toggleClass('oldClass').toggleClass('newClass');
         alert('1111');  
        });


}

$(function(){
         $('.oldClass').on('click',function(){
          $(this).toggleClass('oldClass').toggleClass('newClass');
            alertTrigger();
            });

   });

答案 1 :(得分:0)

你走了!您必须订阅和取消订阅活动。我也是jQuery的新手,它可能不是最清晰的解决方案,但它确实有效。如果有人可以建议更好的解决方案,欢迎你。

var subNewClass = function () {
    $('.newClass').off().on('click', function () {
        alert('1111');
    });
};

var subOldClass = function () {
    
};

$(function () {
    $('.oldClass').off().on('click', function () {
        $(this).toggleClass('oldClass').toggleClass('newClass');
        $('.newClass').off().on('click', func);
    });
});
 .oldClass {
     border: 1px solid red;
 }
 .newClass {
     border: 3px solid green;
 }
<div class="oldClass" title="qwerty">qwerty</div>