電子書籍の厳選無料作品が豊富!

かなりの初心者で他のサイトのソースを借りて改変しています。
どうしても「オブジェクトでサポートされていないプロパティまたはメソッドです」というエラーが消えません。
出来れば具体的な対応策をご教授いただけましたら幸いです。

var startX;
var moveX;
var diffX = 0;
var link_value='';
var adstartY;
var admoveY;
$(function() {
var box = $("#menu-ul")[0];
var touchHandler = getTouchHandler();

box.addEventListener("tmove", touchHandler, false);
box.addEventListener("tcst", touchHandler, false);
box.addEventListener("tchend", touchHandler, false);
document.addEventListener("tmove", getTouchHandlerdoc(), false);
document.addEventListener("tcst",getTouchHandlerdoc(), false);
document.addEventListener("tchend", getTouchHandlerdoc(), false);
$("#item0")[0].addEventListener("tcst", getTouchHandlera('0'), false);
$("#item1")[0].addEventListener("tcst", getTouchHandlera('1'), false);
$("#item2")[0].addEventListener("tcst", getTouchHandlera('2'), false);
$("#item3")[0].addEventListener("tcst", getTouchHandlera('3'), false);
$("#item4")[0].addEventListener("tcst", getTouchHandlera('4'), false);
$("#item5")[0].addEventListener("tcst", getTouchHandlera('5'), false);
$("#item6")[0].addEventListener("tcst", getTouchHandlera('6'), false);
/*
$("#item9")[0].addEventListener("tcst", getTouchHandlera('9'), false);
*/
$("#menu-prev-btn")[0].addEventListener("tcst", getTouchHandlerb('prev'), false);
$("#menu-next-btn")[0].addEventListener("tcst", getTouchHandlerb('next'), false);
$("#menu-prev-btn")[0].addEventListener("tchend", getTouchHandlerb('prev'), false);
$("#menu-next-btn")[0].addEventListener("tchend", getTouchHandlerb('next'), false);
});
function getTouchHandlerdoc() { return function(e) {
if (e.type == "tcst") {
$('#footer_ad').hide();
$('#footer_ad').stop();
adstartY = touch.pageY;
} else if (e.type == "tmove") {
admoveY = touch.pageY - adstartY;
if ((admoveY < 20) && (admoveY > -20)){
$('#footer_ad').css('position','absolute');
$('#footer_ad').css('top',document.body.clientHeight + 'px');
}
} else if (e.type == "tchend") {
$('#footer_ad').show();
}
}}

function getTouchHandlerb(param) { return function(e) {
e.preventDefault();
if (e.type == "tcst") {
link_value = param;
if(param == "prev"){
timer_prev();
}else if(link_value == "next"){
timer_next();
}
} else if (e.type == "tchend") {
}
}}
function getTouchHandlera(param) { return function(e) {
//e.preventDefault();
if (e.type == "tcst") {
link_value = $('#item'+param+' a').attr('href');
}
}}
function getTouchHandler() {
var sTime = 0;
var moveX = 0;
return function(e) {
//e.preventDefault();
var touch = e.touches[0];
if (e.type == "tcst") {
startX = touch.pageX;
moveX = 0;
startX = startX - diffX;
sTime = (new Date()).getTime();
} else if (e.type == "tmove") {
//e.preventDefault();
diffX = touch.pageX - startX;
moveX = diffX;
if (diffX > 0){ diffX = 0; }
if (diffX < -320){ diffX = -320; }
$("#menu-ul").css("left", diffX + "px");
//$("#menu-ul").animate({left:diffX + 'px'},10);
} else if (e.type == "tchend") {
//e.preventDefault();
var t = (new Date()).getTime() - sTime;
if ((moveX < 10) && (moveX > -10)){
location.href=link_value;
}
}
}
}
$(window).scroll(function () {
var win = window.innerHeight;
var offsettop = $("#page").offset().top;
var offsettop = window.pageYOffset;
var adposition = offsettop + win - 50;
var adstartposition = offsettop + win + 60;
$('#footer_ad').css('position','absolute');
$('#footer_ad').css('top',adstartposition);
$("#footer_ad").animate({top:adposition + 'px'},500)
});
window.onorientationchange = function() {
var win_width = $(window).width();
$('#menu-frame').css('width',(win_width - 54) + 'px');
$('#menu-frame').css('overflow','hidden');
}
$(document).ready(function () {
var win_width = $(window).width();
$('#menu-frame').css('width'

A 回答 (2件)

具体的も何も、足し算ができない人に円の面積の求め方を教えるのは無理です。


(教えるくらいなら自分でやった方が早いです。)
たぶんこれっぽい気はしますが。。。
http://www.google.com/?q=jquery#q=jquery


FirefoxもChromeも、「エラーは出ないが動かない」ではないですかね?
IEはエラーが出てくれるので「動かないこと」が、わかりやすいかもしれませんが。

"tcst"や"tmove"という書き方をどこで見つけられたのか、教えてもらっていいですか?
特殊な書き方をしているからには、それ相応の特殊なライブラリなんかを使っていると思うので、
そういうものの作り方に、非常に興味があります。
(もちろん私が知らない標準規格かもしれませんので、それはそれで勉強になりますから。)
    • good
    • 0
この回答へのお礼

var touch = e.touches[0];
ここの行をコメントアウトしたら、エラーが消えました。

半年くらい前に、他のサイトで使っているプログラムを参考にして書いたものを、
エラーがので修正してくださいと言われ、どこのサイトだったかちょっと思い出せないんです、

もう少し勉強が必要ですね、、
ありがとうございました!

お礼日時:2012/03/20 09:21

細かくは見てないけど、それ、IE以外のブラウザ (Firefox,Opera,Chrome,Safari) なら動くと思います。



IEで動かすには、大幅に改修が必要ですね。
最初の方にある、addEventListener は、attachEvent に置き換えるとか。
(参考)
http://www.openspc2.org/reibun/JavaScript_techni …
    • good
    • 0
この回答へのお礼

ありがとうございます!

var touch = e.touches[0];
ここの行をコメントアウトしたら、エラーが消えました。

他のサイトで使っているプログラムを参考にして書いたので、
もう少し勉強が必要ですね、、

サイト、参考になりました。ありがとうございました。

お礼日時:2012/03/20 09:19

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