@datasage が指摘するように、onMouseDown
前に呼び出されるonClick
ためaddHit
、Cookie 値を設定する前に JavaScript が実行されます。詳細はこちらのページをご覧ください
編集:あなたが今何をしようとしているのか分かります。ディレクトリのスキャンを処理し、有用な形式でデータを返すには、別の php ファイル (私の例では datagetter.php) を作成する必要があります。 ajax ハンドラーを PHP コードの先頭に追加します。
PHP を使用してリンクをエコーする
<a href="ftp://<?php echo $source . '/' . $source2 . '/' . $genre . '/' . $title ?>" id="PopUpItUp" class="detail" data-title="<?php echo $title; ?>" data-id="<?php echo $id; ?>"><?php echo $title ?> (Episodes)</a>
jQuery を使用して各リンクにイベント ハンドラーをアタッチする
<script>
$(window).load(function () {
$('.detail').each().mousedown(function () {
//set title cookie access this in php with $_COOKIE['title']
$.cookie('title', $(this).attr('data-title'));
});
$('.detail').each().click(function (e) {
//increment hitcount
var titleid = $(this).attr('data-id')
addHit('./count.php?id=' + titleid , titleid);
//get data to display via ajax call you may want this IN addHit somewhere
//there will be a delay in getting the data you want so display something to show progress while we wait
$("#popup").html("<div><img src='progresshappens.gif' width='25px' height='25px' />");
$.ajax({
url: 'http://yourdomain.com/datagetter.php?id=' + titleid,
success: function(data) {
//Do something with data, probably add to popup window? here is a starting point
//Check into using javascript 'for each' function
$('#popup').html('<div>' + data + '</div>');
},
error: function(request, error, errormessage) {
//show error, something bad happened
$("#messages").html(error + '\n' + errormessage);
}
});
//don't follow link
e.preventdefault();
return false;
});
</script>