我尝试实现以下代码:
<a href = "http://www.google.com"/ id="external">go to google</a>
<span id="num1"></span>// to show the number of clicks so far.
<a href = "index.php" id="internal">go to home</a>
<span id="num2"></span>>// to show the number of clicks so far.
<script>
$(document).ready(function() {
var count1=0;
var count2=0;
$("#external").click(function(){
count1++;
});
$("#num1").html(count1);
$("#internal").click(function(){
count2++
});
$("#num2").html(count2);
});
</script>
我不确定上面所做的是为了跟踪每个链接的点击次数是正确的,问题是当再次加载页面时,count变量将重置为0,I想知道我是否需要将count变量插入到数据库中,或者是否有更有效的方法来做到这一点,任何人都可以帮助我,任何帮助将不胜感激!
答案 0 :(得分:1)
每次加载页面时,Javascript都会“重置”。为了跟踪您必须将数据存储在数据库中的点击次数。
答案 1 :(得分:1)
您可以为click
事件填写链接,停止正常流程,向服务器发送AJAX请求以记录点击,然后将用户重定向到请求的URL:
$('#external, #internal').on('click', function (event) {
var url = $(this).attr('href');
event.preventDefault();
$.get('path/to/server-side.php', { 'vote' : url }, function (serverResponse) {
window.location = url;
});
});
请注意,.on()
是jQuery 1.7中的新增内容,在这种情况下与使用.bind()
相同。
您还可以选择所有链接:
$('a')...
或者您可以将类添加到要记录的链接
$('.log-this-link')...