• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

REL-Attribute durch "data-rel" Attribute ersetzten in kleinem Java-Snippet

kaischo

Neues Mitglied
Hallo,

Da das "rel"-Attribute in HTML5 nicht mehr Valide ist in einem <a>, möchte ich es ersetzen durh das "data-rel" attribute, welches durchaus Valide ist. Ich nutze Fancybox 2, und da wird das REL-Attribute benutzt. Bei Fancybox 1.3.4 konnte ich das easy ersetzen durch das "data-rel". Hier irgendwie nicht. Ich habe folgende Links:

HTML:
<a class="fancybox-thumb" rel="fancybox-thumb" href="bild.jpg" title="bild1">Bild1</a>

durch das hier ersetzt:

HTML:
<a class="fancybox-thumb" data-rel="fancybox-thumb" href="bild.jpg" title="bild1">Bild1</a>

Und das hier ist der Java-Script Abschnitt:

Code:
// jQuery plugin initialization
    $.fn.fancybox = function (options) {
        var opts = options || {},
            selector = this.selector || '';

        function run(e) {
            var group = [];

            e.preventDefault();

            if (this.rel && this.rel !== '' && this.rel !== 'nofollow') {
                group = selector.length ? $(selector).filter('[rel="' + this.rel + '"]') : $('[rel="' + this.rel + '"]');
            }

            if (group.length) {
                opts.index = group.index(this);

                F(group.get(), opts);

            } else {
                F(this, opts);
            }

            return false;
        }

        if (selector) {
            D.undelegate(selector, 'click.fb-start').delegate(selector, 'click.fb-start', run);

        } else {
            $(this).unbind('click.fb-start').bind('click.fb-start', run);
        }
    };
}(window, document, jQuery));


Diesen habe ich so geändert:

Code:
// jQuery plugin initialization
    $.fn.fancybox = function (options) {
        var opts = options || {},
            selector = this.selector || '';

        function run(e) {
            var group = [];

            e.preventDefault();

            if (this.data-rel && this.data-rel !== '' && this.data-rel !== 'nofollow') {
                group = selector.length ? $(selector).filter('[data-rel="' + this.data-rel + '"]') : $('[data-rel="' + this.data-rel + '"]');
            }

            if (group.length) {
                opts.index = group.index(this);

                F(group.get(), opts);

            } else {
                F(this, opts);
            }

            return false;
        }

        if (selector) {
            D.undelegate(selector, 'click.fb-start').delegate(selector, 'click.fb-start', run);

        } else {
            $(this).unbind('click.fb-start').bind('click.fb-start', run);
        }
    };
}(window, document, jQuery));


Leider hat das nichts gebracht, nun geht die Funktion gar nicht mehr. Könnt ihr mir helfen?

Freue mich über jede Hilfe, vielen Dank schonmal.

Kaisch0
 
Was sagt denn die Fehlerkonsole?

this.data-rel ← Das wird sicherlich als this.data minus rel ausgewertet.

Wie man das behebt, ob das in dem Kontext so überhaupt Sinn ergibt, weiß ich spontan nicht.
 
Also ich habe inzwischen das ganze auch mit "tag" und anderen "Ersatz"-Sachen für das rel-Attribute probiert. Insofern scheint das mit dem "-" bei "data-rel" nicht das Hauptproblem zu sein...:/ Die Fehlerkonsole finde ich wo? Sorry. Das muss ich wirklich irgendwie lösen, aber ich bin nicht gerade super in JS.

Viele liebe Grüße
 
Zurück
Oben