dポイントプレゼントキャンペーン実施中!

初めまして。お世話になります。

(Layer1中の)Click回数を数え、規定された回数でアクションを起こす方法を模索しているところなのですが、、、
なかなかそれが見つかりません。
ご存知の方、ご教授頂ける方がおられたらと思い投稿させて頂きます。

例えば以下のsetTimeoutを利用したlinkの様に、setTimeをCrick回数に代替えし、
規定値(仮に10回)に達したところで別ページへ移動させるような方法があるんでは?
なんて素人ながら思っているのですが。。

<SCRIPT type="text/javascript">
<!--
setTimeout("link()", 7000);  ←※クリック回数("link()",10);
document.write();
function link(){
location.href='./title.html';
}
-->
</SCRIPT>

A 回答 (3件)

こんちくわぶぅ~!



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<title>クリックした回数で、アクション?</title>

<p id="a">5回押すと</p>
<p id="b">1回だけでも</p>

<script type="text/javascript">
//全角空白は、半角にでもなおしてね
//@cc_on @set @V = (@_jscript_version >= 5.5)
var clicker = {};

clicker.countup = (function () {
 return function (e) {
  var p = this.get(e);
  if (p) {
   p.count_buffer++;
   if (p.count_buffer == p.counter) {
    p.func.call();
    p.count_buffer = 0;
   }
  }
 };
})();


clicker.add = (function () {
 return function (eid, count, func) {
  var e = document.getElementById(eid);
  var p;
  if (! (p = this.get(e))) this.put(e, count, func);
 };
})();


clicker.get = (function () {
 return function(e) {
  return this.hasOwnProperty (e.id) ? this[e.id]: null;
 };
})();


clicker.put = (function () {
 return function (e, count, func) {
  this[e.id] = {element:e, counter:count, func:func, count_buffer:0};
  return e;
 };
})();


clicker.Listener = (function () {
return function (evt) {
  var e = evt./*@if (@V) srcElement @else@*/ target /*@end@*/;
   if (e.id && clicker.get (e)) clicker.countup(e);
};
})();


clicker.Finalizer = (function () {
return function (e) {
  document./*@if (1) detachEvent ('on' + @else@*/ removeEventListener (/*@end@*/
    'click', clicker.Listener, false);
  
  /*@if (1) detachEvent ('on' + @else@*/ removeEventListener (/*@end@*/
    'unload', clicker.Finalizer, false);
};
})();


//_______________________________

document./*@if(@V)attachEvent('on'+ @else@*/addEventListener(/*@end@*/
 'click', clicker.Listener, false)
 
/*@if (1) attachEvent ('on' + @else@*/ addEventListener (/*@end@*/
  'unload', clicker.Finalizer, false);
//_______________________________


clicker.add ('a', 5, function(){alert("5かいおした!");});
clicker.add ('b', 1, hoge);

function hoge() {
 alert("1かいおした!");
}
</script>
    • good
    • 1

#No2.です。

はやくもていせいします。

@if(1)

@if(@V)
に!
そのままでも、うごくとおもうけどね。
まちがいあったら、してきおねがいします。

ばぶ。
    • good
    • 2
この回答へのお礼

babu様
ありがとうございます。動作確認出来ました!
こちらを改良して目的に合った使い方をしていきたいと思います!
未だどこがどういう働きをしているか理解していない点はありますが、
追って調べてゆきたいと思います。

お礼日時:2009/06/26 10:33

こんちくは。



<script type ="text/JavaScript">
<!--

function hoge(){
with(F1){
//回数アップ
hogehoge.value = eval(hogehoge.value) + 1

//回数チェック
if(eval(hogehoge.value) => 10)Then
alert('10回越えた');
else
alert('そうでもない');
end if
}
}
//-->
</script>


========================================

<body>
<form name ="F1" method ="post">
<input type ="text" name ="hogehoge" value ="0">
<input type ="buttom" name ="bt1" onclick ="hoge()">
</form>
</body>

こんなんじゃダメ??
試してはいません。


後考えるとしたら。。。

クリックしたら、クッキーに回数を保存&カウントアップ&読み込んで回数判断。かな。。。
    • good
    • 0
この回答へのお礼

STICKY2006様
ありがとうございます。残念ながらご提示頂いたソースの回避チェック、
if(eval(hogehoge.value) => 10)で構文エラーとなり、動作確認がとれず、
またどこを修正すれば良いか理解できず申し訳なかったですが、
解決の兆しが見えましたのでお礼を兼ねご報告させて頂きます。

お礼日時:2009/06/26 10:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!