JqueryUI с использованием ContentFlow JavaScript. Ошибка переменной в Firefox, но работает в Safari - PullRequest
0 голосов
/ 23 сентября 2011

Я использую ContentFLow, javascript coverflow для изображений, здесь , и я интегрирую jQueryUI для тем и значков / кнопок. Я специально интегрирую кнопку «Воспроизведение / Пауза» для слайд-шоу, и она работает в Safari со следующим кодом, но я получаю сообщение об ошибке в FireBug в Firefox, и код завершается ошибкой. Ошибка FireBug:

play_slide не определен [Break On This Error] var p = play_slide;

Вот мой код ContentFlow для функции воспроизведения / паузы:

if (conf.showControlls) {
var c = document.createElement('div');
var p = play_slide;
}

/* toggle slideshow on and off */
flow.toggleSlideshow = function(force) {

if (this._slideshow_locked) var t = "stop";
else var t = "play";
if (force) {
    switch (force) {
    case "stop":
    case "play":
        var t = force;
        break;
    }
}

switch (t) {
case "stop":
    if (p) {
        p.removeClassName('play');
        p.addClassName('pause');
        p.setAttribute('title', "pause");
    }
    this._slideshow_locked = false;
    this._startSlideshow();
    break;

case "play":
    if (p) {
        p.removeClassName('pause');
        p.addClassName('play');
        p.setAttribute('title', "play");
    }
    this._slideshow_locked = true;
    this._stopSlideshow();
    break;
}
}; 

/* add controll elements */
if (c) {

p.addEvent('click', flow.toggleSlideshow.bind(flow), '');

Вот мой код JqueryUI для кнопки «Воспроизвести» и для изменения значка с pLay на «Пауза»

$(function() {
$("#play_slide").button({
    text: false,
    icons: {
        primary: "ui-icon-play"
    }
}).click(function() {
    var options;
    if ($(this).text() === "play") {
        options = {
            label: "pause",
            icons: {
                primary: "ui-icon-pause"
            }


        };
    } else {
        options = {
            label: "play",
            icons: {
                primary: "ui-icon-play"
            }
        };
    }
    $(this).button("option", options);
    $(this).toggleSlideshow();
});
});

Не уверен, почему он работает в Safari, а не в Firefox, но мне, очевидно, нужна помощь с var p = play_slide; Любая помощь для этого новичка будет оценена!

Mike

1 Ответ

0 голосов
/ 23 сентября 2011

Я ответил на свой вопрос. После некоторых проб и ошибок изменив var p на:

var p = document.getElementById("play_slide");

и удалите это:

$(this).toggleSlideshow();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...