如下代碼,有兩組圖片,user1-image和user2-image,每組圖片三張,現(xiàn)在每組只能選定一張圖片,意味著選好了一張圖片后,要遍歷這組的其他圖片并把其他有選中的圖片類還原,怎么做?(還原用$(this).attr("class", "user-img1或者2");)注意imgList是最后選定的兩張圖片的名字的數(shù)組,所以dom更新,數(shù)組也要更新,最后是每組圖選一個,也就是兩張圖
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>test</title>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div class="panel panel-default">
<!-- <h3>{question}</h3> -->
<div class="panel-body">
<div class="row" style="height:100%;background: #EEE;">
<div style="float: left;">
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img1" data-name="img1" src="file:///Users/1/Desktop/timg.jpeg" style="width:100%" />
</div>
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img1" data-name="img2" src="file:///Users/1/Desktop/timg.jpeg" style="width:100%" />
</div>
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img1" data-name="img3" src="file:///Users/1/Desktop/timg.jpeg" style="width:100%" />
</div>
</div>
<div style="float: left;">
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img2" data-name="img1" src="file:///Users/1/Desktop/timg.jpeg" style="width:100%" />
</div>
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img2" data-name="img2" src="file:///Users/1/Desktop/timg.jpeg" style="width:100%" />
</div>
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img2" data-name="img3" src="file:///Users/1/Desktop/timg.jpeg" style="width:100%" />
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript">
$(document).ready(function () {
$(".questionClass>input[type='text']").attr("readonly", true);
// var d1 = $(".user-img1");
// console.log(d1);
$(document).delegate(".user-img1", "click", function () {
$(this).attr("class", "selected");
console.log($(this));
var textValue = $(".questionClass>input[type='text']").val();
var imgList = textValue.split(",");
if (textValue == undefined || textValue == "") {
imgList = new Array();
}
imgList.push($(this).data("name"));
$(".questionClass>input[type='text']").val(imgList.join(","));
});
$(document).delegate(".user-img2", "click", function () {
$(this).attr("class", "selected");
var textValue = $(".questionClass>input[type='text']").val();
var imgList = textValue.split(",");
if (textValue == undefined || textValue == "") {
imgList = new Array();
}
imgList.push($(this).data("name"));
$(".questionClass>input[type='text']").val(imgList.join(","))
});
$(document).delegate(".selected", "click", function () {
$(this).attr("class", "user-img1");
var imgList = $(".questionClass>input[type='text']").val().split(",");
var index = $.inArray($(this).data("name"), imgList);
if (index > -1) {
imgList.splice(index, 1);
}
$(".questionClass>input[type='text']").val(imgList.join(","))
});
$(document).delegate(".selected", "click", function () {
$(this).attr("class", "user-img2");
var imgList = $(".questionClass>input[type='text']").val().split(",");
var index = $.inArray($(this).data("name"), imgList);
if (index > -1) {
imgList.splice(index, 1);
}
$(".questionClass>input[type='text']").val(imgList.join(","))
});
var anwser = $(".answers").attr("data-pre_answer");
if (anwser != null && anwser != '' && anwser != undefined) {
var json = jQuery.parseJSON(anwser);
if (json["text"] != null) {
$.each(json["text"].split(","), function (index, element) {
$("img[data-name='" + element + "']").attr("class", "selected");
});
$(".questionClass>input[type='text']").val(json["text"]);
}
}
});
</script>
<style type="text/css">
.selected {
border: solid 10px red;
}
</style>
問題略多,一點點說。
</body>
后邊除了</html>
,其它什么都不要放。</body>
之前。.delegate()
已經(jīng)是標記作廢的API就別再用了。文檔可以先參考jQuery API 中文文檔。$().ready(function(){})
推薦用$(function(){})
代替。.prop()
操作。new Array()
,直接用字面量即[]
就好。data-
屬性里咋就放了個標簽名?好浪費……jQ里可以用它存東西的,而且也有相應的API可以調(diào)?。ㄆ鋵嵲镆灿校热恢vjQ這里就不發(fā)散了),你可以在每組img的父類里存上選的是哪個,然后加個id以便拿到jQ的DOM句柄(其實直接用data-標簽也行但我嫌麻煩。。嘿嘿)~(說太多好像不放代碼不好……)
HTML:
<div class="panel panel-default">
<div class="panel-body">
<div class="row" style="height:100%;background: #EEE;">
<div id='group1' data-selected='' style="float: left;">
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img1" data-name="img1" src="timg.jpeg" style="width:100%">
</div>
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img1" data-name="img2" src="timg.jpeg" style="width:100%">
</div>
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img1" data-name="img3" src="timg.jpeg" style="width:100%">
</div>
</div>
<div id='group2' data-selected='' style="float: left;">
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img2" data-name="img1" src="timg.jpeg" style="width:100%">
</div>
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img2" data-name="img2" src="timg.jpeg" style="width:100%">
</div>
<div style="width: 300px;float: left;margin-left: 3px">
<img class="user-img2" data-name="img3" src="timg.jpeg" style="width:100%">
</div>
</div>
</div>
</div>
</div>
JS:
function updateText(jQdom) {
var sel1 = $('#group1').data('selected'),
sel2 = $('#group2').data('selected');
jQdom.val(sel1 + ', ' + sel2);
}
$(function(){
var $selText = $('.questionClass').children('input[type="text"]');
$selText.prop('readonly', true);
$(body)
.on('click', '.user-img1', function () {
$('.user-img1').removeClass('selected');
$(this).addClass('selected');
var name = $(this).data('name');
$('#group1').data('selected', name);
updateText($selText);
})
.on('click', '.user-img1', function () {
$('.user-img2').removeClass('selected');
$(this).addClass('selected');
var name = $(this).data('name');
$('#group2').data('selected', name);
updateText($selText);
})
//后邊那段anwser沒看懂就不寫了……
})
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學院和江蘇省首批服務外包人才培訓基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術與教育服務機構,發(fā)展為教育服務業(yè)的綜合性企業(yè)集團,成為集合面授教學培訓、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。