1.append(content)函數。content能夠是一個字符串,dom,或者$(dom)html
var dom = showData.length>0 ? template('template-studentGrid',{ items:showData}):''; page===1? studentGrid.html(dom):studentGrid.append(dom); if(showData.length === 0) return; $(dom).filter('.item').each(function (i) { $(this).data('data', showData[i]); }) //dom和$(dom)是不一樣的變量了。$(dom)指向了不一樣的變量,所以 studentGrid中dom的.item確定沒有成功的加上data('data', showData[i])。 //修改的時候選中已改數據 $(curChooseListData).each(function (i, item) { studentGrid.find('div.item[data-id="' + item.id + '"] i.check-ico').addClass('fa-check-circle').removeClass('fa-circle-thin'); } 改爲這樣: var dom = showData.length>0 ? $(template('template-studentGrid',{ items:showData})):''; page===1? studentGrid.html(dom):studentGrid.append(dom); if(showData.length === 0) return; dom.filter('.item').each(function (i) { //dom都是同一個變量 $(this).data('data', showData[i]); }) //修改的時候選中已改數據 $(curChooseListData).each(function (i, item) { studentGrid.find('div.item[data-id="' + item.id + '"] i.check-ico').addClass('fa-check-circle').removeClass('fa-circle-thin'); } //左側列表選中/取消 studentGrid.on('click', 'div.item', function () { var item = $(this), ico = item.find('i.check-ico'), id = item.attr('data-id'), data = item.data('data');//這裏便能拿到data('data')了
//選中 if (ico.hasClass('fa-circle-thin')) { ico.addClass('fa-check-circle').removeClass('fa-circle-thin'); curChooseListData.push(data); refreshChosenList(); } else { chosenStudent.find('div.item[data-id="' + id + '"] i').click(); } })
2.append()與html(),text()的區別?react
3.每打開一次modal,modal的js便會執行引進一次,也就綁定了一次事件。由於事件時綁在document上,關閉modal的時候,document沒有關閉,爲此只要一打開,就會又綁定一次事件。等到觸發改事件的時候就會觸發好幾回,由於綁定了不少次。jquery
4.列表外面能夠傳遞各類數據參數到modal裏面,包括列表刷新的函數。由於該modal仍是在該document上的,因此modal能夠執行列表外的刷新函數。這裏注意了,是哪裏打開的modal,即app