0

我是 jQuery 新手,我正在尝试开发一个点击计数器。
jQuery => Ajax => PHP => MySQL
所以我有这个结构:

function clck(id) {
    $.post(
        'http://counter:8888/sts/click.php', {
        id: id,
        htmltitle: (document.title + " <br/> " + '(' + document.location.href + ')'),
        clicktitle: ($("$this\[onClick\]").attr("title") + " <br/> " + '(' + $("$this\[onClick\]").attr("href") + ')')
    });
}

我正在使用这个调用 jQuery:

<a href="http://google.com" onClick="javascript:clck(1)" title="google1">google 1</a>
<a href="http://fb.com" onClick="javascript:clck(2)" title="fb 2">fb 2</a>

所以它适用于第一个链接,但是当我按下第二个链接时,它在第一个链接中写入相同。
我需要的是:页面标题、页面URL、链接标题和链接href。
所有这些都必须通过 Ajax 单独发送到 PHP。




非常感谢 J_Caselles(效果很好)、poncha 和 rtpHarry
所以,为我工作的代码:

function clck(id) {
 $.post(
     'http://counter:8888/sts/click.php', {
     id: id.split("link_")[1],
     htmltitle: document.title + " <br/> (" + document.location.href + ")",
     clicktitle: $("#" + id).attr("title") + " <br/> (" + $("#" + id).attr("href") + ")"
 });}

并打电话

<a id="link_1" href="http://google.com" title="google1" onClick="javascript:clck(this.id)">google 1</a>
<a id="link_2" href="http://fb.com" title="fb 2" onClick="javascript:clck(this.id)">fb 2</a>
4

2 回答 2

1

我会这样写:

$("a").click(function () {
  $.post(
    'http://counter:8888/sts/click.php', {
    id: $(this).data("linkid"),
    htmltitle: (document.title + " <br/> " + '(' + document.location.href + ')'),
    clicktitle: $(this).attr("title") + " <br/> (" + $this.attr("href") + ")";
  });
});

然后像这样做我的标记:

<a href="http://google.com" data-linkid="1" title="google1">google 1</a>
<a href="http://fb.com" data-linkid="2" title="fb 2">fb 2</a>
于 2013-08-12T17:40:06.440 回答
1

您必须传递链接的实际 ID(当然要先提供它)。

<a href="http://google.com" id="link1" onClick="javascript:clck(this.id)" title="google1">google 1</a>
<a href="http://fb.com" id="link2" onClick="javascript:clck(this.id)" title="fb 2">fb 2</a>

然后选择带有 id 的链接。简单的。

function clck(id) {
     $.post(
         'http://counter:8888/sts/click.php', {
         id: id.split("link")[1],
         htmltitle: document.title + " <br/> " + '(' + document.location.href + ')'),
         clicktitle: $("#" + id).attr("title") + " <br/> " + '(' + $("#" + id).attr("href") + ')')
     });
}
于 2013-08-12T17:48:37.457 回答