2017-07-19 179 views
0

我有一张表列出一些评论。在评论旁边有两个链接,hideshow。所以我想要做的是当点击右边的链接来改变评论的状态与Ajax。点击链接隐藏/显示内容

// inside a loop for showing all comments 
<div class="pull-right" class="publish-history-comment"> 
    <a href="#" data-time="<?= $row->time; ?>" class="publish-history-comment-link" onclick="toggleHistoryNotes('publish');">Publish</a> 
</div> 
<div class="pull-right" class="hide-history-comment"> 
    <a href="#" data-time="<?= $row->time; ?>" class="hide-history-comment-link" onclick="toggleHistoryNotes('hide');">Hide</a> 
</div> 
<?= $row->comment; ?> 

<script type="text/javascript"> 
    function toggleHistoryNotes(status) { 
     var link = $('.' + status + '-history-comment-link'); 
     var time = link.attr('data-time'); 
     alert(time); 
    } 
</script> 

如何定位点击了哪个链接并执行ajax调用以切换评论状态?

+0

尝试也许'$(本).attr( '数据时间')' –

+0

只是一些额外的信息:警告没有火起来,但是当我点击链接之一,而不是它滚动页面顶部 – Lykos

+1

尝试添加e.preventDefault()到开始 –

回答

1

你可以改变你的JQuery触发点击a标签。此外,您应该添加e.preventDefault();,因为这是要点击a标记,这将防止默认操作。

$('.pull-right a').on('click', function(e) { 
 
    e.preventDefault(); 
 
    var time = $(this).data('time'); 
 
    console.log($(this).text() + ' == ' + time); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="pull-right" class="publish-history-comment"> 
 
    <a href="#" data-time="2133124356354" class="publish-history-comment-link">Publish</a> 
 
</div> 
 
<div class="pull-right" class="hide-history-comment"> 
 
    <a href="#" data-time="2465433141212123" class="hide-history-comment-link">Hide</a> 
 
</div>

+0

我做了代码更新。现在我总是只有第一排的时间 – Lykos

0
<script type="text/javascript"> 
    $('a').on('click', function(e) { 
     e.preventDefault(); 
     var time = $(this).data('time'); 
    }); 
</script> 
+0

为什么downvote?请给出意见。 –

+1

不是downvoter,但'publish-history-comment-link'被分配给锚,所以不需要'.find(a)' – Satpal

+0

我做了代码更新。现在我总是只有第一排的时间 – Lykos