$(document).ready(function () {
$(".sme").click(function (event) {
var vote = $(this).attr('id');
$('.to').html(vote);
$(".sme").removeClass('clicked');
$(this).addClass('clicked');
});
});
$(document).ready(function () {
$(".tme").click(function (event) {
var more = $(this).attr('id');
$('.more').html(more);
if (typeof vote) {
$('.error').html("ERRRROOORRRR");
} else {
$(".tme").removeClass('clicked');
$(this).addClass('clicked');
}
});
});
在让if / else工作时遇到问题。
任何帮助都会很棒,谢谢!
答案 0 :(得分:2)
vote
始终为undefined
,因为它不在.tme
的点击处理函数范围内。我想你想要这样的东西:
$(document).ready(function () {
var vote = undefined;
$(".sme").click(function (event) {
vote = $(this).attr('id');
$('.to').html(vote);
$(".sme").removeClass('clicked');
$(this).addClass('clicked');
});
$(".tme").click(function (event) {
var more = $(this).attr('id');
$('.more').html(more);
if (vote === undefined) {
$('.error').html("ERRRROOORRRR");
} else {
$(".tme").removeClass('clicked');
$(this).addClass('clicked');
}
});
});
答案 1 :(得分:1)
vote
是click
事件处理程序的局部变量。你不能在另一个事件处理程序中调用它,它将不存在。
为什么使用两个document ready
处理程序?只需使用一个。我会做这样的事情:
<script type="text/javascript">
$(document).ready(function() {
$(".sme").click(function (event) {
window.vote = $(this).attr('id');
$('.to').html(window.vote);
$(".sme").removeClass('clicked');
$(this).addClass('clicked');
});
$(".tme").click(function (event) {
var more = $(this).attr('id');
$('.more').html(more);
// Two cases. If it's undefined will throw error. The same if it is a string, but its length equals to zero.
if ( typeof window.vote == undefined || window.vote.length == 0 ) {
$('.error').html("ERRRROOORRRR");
} else {
$(".tme").removeClass('clicked');
$(this).addClass('clicked');
}
});
});
</script>