Trigger-Funktion basiert auf Kategorie Ändern

Habe ich die folgenden. Ich versuche, die Funktion auslösen, werden auf der Grundlage der css-Klasse ändern, aber es funktioniert nicht.

<script type="text/javascript">

jQuery(document).ready(function(){

jQuery("#slider-banner").bind("cssClassChanged",function(){
    console.log("I'm Here!");
    if(jQuery("#slider-banner").hasClass('living-nutrients'))
    {
        jQuery("#home-middle-first").css("background-image","url([image path])");
    }
    else if(jQuery("#slider-banner").hasClass('right-partner'))
    {
        jQuery("#home-middle-second").css("background-image","url([image path])");
    }
    else if(jQuery("#slider-banner").hasClass('with-you'))
    {
        jQuery("#home-middle-third").css("background-image","url([image path])");
    }
});

    jQuery("#slider-banner").trigger('cssClassChanged');

Den colsole zeigt meine Konsole.log-Meldung, die beim laden der Seite, aber nicht, wenn die Klasse ändert sich wieder nach dem laden der Seite. Jeder sehen, was ich falsch mache?

UPDATE:

So habe ich gelernt, dass "cssClassChanged" ist nicht echt... ich war der Versuch der Anpassung einer Antwort, die ich gefunden irgendwo anders... mir ist klar, dass, wenn jQuery wurden eine Waffe, wäre ich gefährlich! (wohl wissend, dass ist die halbe Miete, oder?)

Meine versuchen sich gdoron ist Antwort verlinkt unter:

<script type="text/javascript">

jQuery(document).ready(function() 
{
    function checkForChanges()
    {
        if(jQuery("#slider-banner").hasClass('living-nutrients'))
        {
            jQuery("#home-middle-first").css("background-image","url([image path])");
        }
        else if(jQuery("#slider-banner").hasClass('right-partner'))
        {
            jQuery("#home-middle-second").css("background-image","url([image path])");
        }
        else if(jQuery("#slider-banner").hasClass('with-you'))
        {
            jQuery("#home-middle-third").css("background-image","url([image path])");
        }

        else
            setTimeout(checkForChanges, 500);
    }
});
</script>

Ich bin immer noch etwas fehlt, obwohl. Es funktioniert nur für die erste Klasse auf die Seite laden.

Jemand gefragt, wie ich bin ändern der Klassen. Ich bin mit einem slider auf jeder Folie ist ein div mit der ID "slider-banner" und der Klasse variiert je nachdem, welche der drei ID-würde Bereiche darunter, dass ich versuche, schalten Sie das Hintergrundbild für.

  • "cssClassChanged" eine gültige HTML-Ereignis?
  • Nope ist es nicht...
  • Das ist, was ich dachte.
  • Wie ändern Sie die Klasse nach dem laden der Seite? @Diodeus Sie können benutzerdefinierte Ereignisse definiert, die in jQuery
  • Aber Sie erkennen es selbst, siehe meine Antwort.
  • lösen Sie ein nicht-Ereignis native manuell, Sie sollten re-trigger der nicht-Muttersprachler Ereignis manuell jedes mal, wenn Sie die css-Klasse verpasst, auf das Ziel der Veranstaltung.
  • Yep - Abfragen für änderungen, hat aber die Gefahr, dass Sie durchaus die CPU-hog.
  • klingt wie der Versuch, Tippen Sie in einem Plug-in läuft auf regler...wenn ja, verwenden Sie eine API-plugin, um das benutzerdefinierte Ereignis auslösen
  • Stimmt, aber manchmal ist es wie mit den plugins, und vielleicht hat er gar keine Kontrolle über die Klasse ändern, wenn es so ist, muss er schmutzig ist... =)
  • Vereinbart. Clevere Lösung.

Schreibe einen Kommentar