我正面临这样的问题。我有一个类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>
答案 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>