我这里的代码有一点问题。我对它很陌生,所以如果它很简单,我很抱歉。但希望有一个解释。
所以这是我的html:
<div class="one" data-selection="1"></div>
<p class="selections"></p>
<p class="cost">£ <span class="price">0</span></p>
这是JavaScript:
<script>
// Empty array to capture selections
var a = [];
var originalValue = "You have Selected section(s): ";
$(".one").click(function () {
if ($(this).attr('class') == "selected one") {
//alert
alert("Are you sure you wish to de-select?");
//remove from the total
$(".price").html(parseInt($(".price").html(),10) - 30)
$(this).removeClass("selected ");
// need to get remove from array
var removeItem = $(this).attr("data-selection");
a = jQuery.grep(a, function(value) {
return value != removeItem;
});
$('.selections').text(originalValue + a);
}
else {
var selection = $(this).attr("data-selection");
alert(selection);
var originalSrc = $(this).attr('class');
$(this).attr('class', 'selected ' + originalSrc);
a.push(1);
a.sort();
$('.selections').text(originalValue + a);
$('.price').text(function(i, txt) {
return +txt + 30;
});
}
});
</script>
这工作正常。但是,当我将 if 语句的内容添加到一个名为的函数中时:
undoSelection()
并将代码更改为:
$(".one").click(function () {
if ($(this).attr('class') == "selected one") {
undoSelection();
}
else {
警报询问他们是否确定取消选择后没有任何内容。如果我在那里添加警报并得到
$(this).attr("data-selection");
它警告未定义。
我希望它在一个函数中,因为我不想要一行行重复的代码:(
有人可以对此有所了解吗?