如下代碼,有兩組圖片,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)是標(biāo)記作廢的API就別再用了。文檔可以先參考jQuery API 中文文檔。$().ready(function(){})推薦用$(function(){})代替。.prop()操作。new Array(),直接用字面量即[]就好。data-屬性里咋就放了個標(biāo)簽名?好浪費……jQ里可以用它存東西的,而且也有相應(yīng)的API可以調(diào)?。ㄆ鋵嵲镆灿?,既然講jQ這里就不發(fā)散了),你可以在每組img的父類里存上選的是哪個,然后加個id以便拿到j(luò)Q的DOM句柄(其實直接用data-標(biāo)簽也行但我嫌麻煩。。嘿嘿)~(說太多好像不放代碼不好……)
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年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。