0

こんにちは、私はいくつかのJavaScriptに少し問題があります.JS関数を動作させようとしています.

var changing_thumbs = new Array();
function changeThumb(index, i, thumb_count, path) {
    if (changing_thumbs[index]) {
        if (path.indexOf('imageCount=') !== -1) {
            lastIndexOfEquals = path.lastIndexOf('=');
            path = path.substring(0, lastIndexOfEquals + 1);
            $j('#' + index).attr('src', path + i);
        }
        else {
            $j('#' + index).attr('src', path + '&imageCount=' + i);
        }
            i = i % thumb_count + 1;
        changing_thumbs[index] = setTimeout("changeThumb('" + index + "', '" + i + "', '" + thumb_count + "', '" + path + "')", 600);
    }
}
function startVideoPreview(index, thumb_count, path) {
   changing_thumbs[index] = true;
   changeThumb(index, 1, thumb_count, path);
}
function endVideoPreview(index, path) {
   clearTimeout(changing_thumbs[index]);
   document.getElementById(index).src = path;
}

html呼び出しは以下のとおりです

<img id="3a80b9aa-8b2f-4fb9-b3b0-02b2f55bf3be" src="/Image/GetClipImg?photoID=3a80b9aa-8b2f-4fb9-b3b0-02b2f55bf3be&userID=2" alt="Test Clip Description" onmouseout="endVideoPreview('3a80b9aa-8b2f-4fb9-b3b0-02b2f55bf3be', '/Image/GetClipImg?photoID=3a80b9aa-8b2f-4fb9-b3b0-02b2f55bf3be&userID=2')" onmouseover="startVideoPreview('3a80b9aa-8b2f-4fb9-b3b0-02b2f55bf3be', 7, '/Image/GetClipImg?photoID=3a80b9aa-8b2f-4fb9-b3b0-02b2f55bf3be&userID=2')">

すべてがうまくいくように見えますが、これらの2行

i = i % thumb_count + 1;
changing_thumbs[index] = setTimeout("changeThumb('" + index + "', '" + i + "', '" + thumb_count + "', '" + path + "')", 600);

前の IF ステートメントを実行した後にヒットすることはありません。これは基本的なものになると確信していますが、私はJSに慣れていないので、何が問題なのかわかりません。ヒントやヒントをいただければ幸いです。

4

1 に答える 1

3

setTimeoutコールバックが必要です。

また、最初のパラメーターとして文字列を使用しないで、関数を使用してください。

これを試して:

changing_thumbs[index] = setTimeout(function() {
  changeThumb(index, i, thumb_count, path);
}, 600);
于 2012-07-11T01:53:54.063 に答える