基本HTML、CSS、JQueryを使用してリストコンポーネントを試してみました。クリックイベントでリスト項目を選択したい。リストアイテムのテキスト(padding space
)の周りのスペースをクリックすると、クリックイベントがキャプチャされます。しかし、テキストをクリックすると(file-name div
全体のスペースも)、クリックイベントはキャプチャされません。内部の子供のdivのためかもしれない?どんな助けもありがとう。ありがとう。子div内にキャプチャされなかったクリックイベント
function selectFile(id, key) {
if($(id).hasClass('selected')) {
$(id).removeClass('selected');
} else {
$(id).addClass('selected');
}
}
$('.file-list-section').on('click', function(event) {
selectFile('#'+event.target.id, event.target.dataset.key);
})
.file-row {
padding: 10px;
border-bottom: 1px solid lightgray;
cursor: pointer;
}
.file-list-section .file-row.selected {
background: #26a69a;
color: white;
}
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<div id="fileList" class="file-list-section">
<div class="file-row" id="fileId_0" data-key="cd58ef701e28f6df8.jpg">
<div class="file-name">cd58ef701e28f6df8.jpg</div>
</div>
<div class="file-row" id="fileId_1" data-key="a682e06e25c5c86.jpg">
<div class="file-name">a682e06e25c5c86.jpg</div>
</div>
<div class="file-row" id="fileId_2" data-key="Jefree" copy.jpeg="">
<div class="file-name">Jefree copy.jpeg</div>
</div>
</div>
ファイル名にはIDがありません - あなたは親IDを渡す必要がありますファイル名をクリックすると – mplungjan