我有一个表格,每行都有链接,链接是javascript链接,点击时执行AJAX查询。我希望在单击链接时,所选链接的行保持突出显示。
如果单击该行,我当前的代码将突出显示该行,但如果单击该行中的链接则不会。
<table class="table table-hover unpadded" id="mashed_tab">
<tbody class="mashed_body">
<?php
foreach($linked as $link)
{
echo '<tr class="mashed_row">';
echo '</td>';
echo '<td class="linked-title dark unpadded"><div class="cell_link">';
echo '<a href="javascript:;" id="linksplode" link_id="'.$link['linkid'].'">'.$link['keywords'].'</a></div></td>';
echo '<td class="small-cell"><i class="fa fa-arrow-right"></i></td>';
echo '</tr>';
}
?>
</tbody>
</table>
tr.mashed_row i.fa-arrow-right {
display:none;
}
tr.mashed_row:hover i.fa-arrow-right {
display:block;
}
.mashed_body tr.selected {
background-color: #ecf0f1;
}
<script type="text/javascript">
$("tbody tr").click(function() {
console.log('clicked');
$(this).addClass('selected').siblings().removeClass("selected");
});
处理链接的脚本:
<script type="text/javascript">
$('.mashed_row a').click(function () {
var link_id = $(this).attr('link_id');
$.ajax({
type: 'POST',
url: '<?php echo base_url(); ?>main/explode_link',
data: {'<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>', link_id},
dataType: 'json',
success : function(data) {
if(data){
var len = data.length;
var txt = "";
if(len > 0){
for(var i=0;i<len;i++){
if(data[i].title){
txt += "<tr><td class='linked-title dark unpadded'>"+data[i].title+"</td><td class='text-left'><span id='article_source' class='label label-primary'>"+data[i].name+"</span></td></tr>";
}
}
}
if(txt != ""){
$("#xarticletab").html("");
$("#xarticletab").append(txt).removeClass("hidden");
}
}
}
}
});
return false;
});
</script>
答案 0 :(得分:1)
下面提到的代码对我有用。希望这也有助于你的情况。
获取表格行中的超链接类型元素,并向其添加类,以突出显示背景。如果这是您的要求,也删除以前选定的行。
参考:添加一个类并将一个类移除到一个元素是java脚本:
http://www.w3schools.com/jquery/html_addclass.asp http://www.w3schools.com/jquery/html_removeclass.asp
使用Jquery选择器搜索元素:
https://learn.jquery.com/using-jquery-core/selecting-elements/
我的代码: Js:
$(document).ready(function() {
attachEvents();
});
function attachEvents() {
$('table tr a').click(function() {
$(this).parent().parent().siblings().removeClass('highlightBackground');
$(this).parent().parent().addClass('highlightBackground') ;
});
};
Html:
<style>
.highlightBackground
{
background-color : red;
}
</style>
<table>
<th> LinkColumn</th>
<th> </th>
<th>Non Link Column</th>
<tr>
<td style="text-align: center">
<a href="#">Click</a>
</td>
<td></td>
<td style="text-align: center"> Row1 </td>
</tr>
<tr>
<td style="text-align: center">
<a href="#">Click</a>
</td>
<td></td>
<td style="text-align: center"> Row2 </td>
</tr>
</table>
答案 1 :(得分:0)
尝试$(&#34; a&#34;)。点击($(this.parent())。addClass(&#39; selected&#39;)。sibilings()。removeClass(&#34; selected& #34);
希望这对你有所帮助