2016-03-27 3 views
0

Bitte beachten Sie meine Jquery-Code.jquery Konflikte auch nach der Verwendung noConflict Funktion

gibt es 3 Klick-Funktion. 1 nach dem Klick SlideToggle-Menü, 2. klicken Sie irgendwo Dokument, schließen Sie das Menü, 3., klicken Sie auf Klasse Class tigger Klasse nach unten drehen.

Hier ist meine jQuery-Code:

<script> 
    $(function() { 
     // Dropdown toggle 
     $('.rs-dropdown-toggle').click(function(){ 
      $(this).next('.rs-dropdown').slideToggle('slow'); 
     }); 

     $(document).click(function(e) { 
      var target = e.target; 
      if (!$(target).is('.rs-dropdown-toggle') && !$(target).parents().is('.rs-dropdown-toggle')) { 
      $('.rs-dropdown').slideUp(); 
      } 
     }); 

    }); 
    jQuery.noConflict(); 
    (function($) { 
     $(".rotate").click(function(){ 
      $(this).toggleClass("down"); 
     }); 
    })(jQuery); 
</script> 

hier HTML-Code ist:

 <nav> 
      <a href="#" id="rs-float-menu" class="rs-dropdown-toggle"> 
       <img src="/wp-content/uploads/2016/03/add.png" class="rs-img"/> 
      </a> 
      <ul class="rs-dropdown"> 
       <li><a href="#">Menu Item</a></li> 
       <li><a href="#">Menu</a></li> 
       <li><a href="#">Settings</a></li> 
       <li><a href="#">Search</a></li> 
      </ul> 
     </nav> 
     <a href="#"><div class="fa fa-chevron-up rotate"></div></a> 

Ohne diese jquery Funktion der Drop-Down funktioniert gut, aber wenn ich diese verwenden, arbeiten Drop-Down gestoppt ..

& Konsole zeigen dies .. aber der 2. Code funktioniert hier gut: http://jsfiddle.net/koala_dev/3v2egwfs/7/

console error

Ich verstehe nicht, wo das Problem ist! Ich glaube, ich mache ein paar dummen Fehler

+2

Versuchen Warum Sie verwenden 'noConflict()' für einen Teil des Codes und nicht alle davon? Oder warum benutzt du es überhaupt? Was ist ein spezifisches Problem? Welche Fehler werden ausgelöst? Benötigen Sie weitere Erläuterungen, wenn Sie Hilfe benötigen – charlietfl

+0

Beschreiben Sie, was tatsächlich passiert. Warum benutzen Sie 'noConflict', nachdem Sie' $ 'bereits benutzt haben? Was lässt dich denken, dass es einen Konflikt gibt? –

+0

@DaveNewton Ich habe weitere Informationen hinzugefügt –

Antwort

1

Ich glaube, Sie noConflict() aus den falschen Gründen hinzugefügt und Ihre ganze Problem war, dass das letzte Ereignis Zuhörer war nicht innerhalb der document.ready Handler. Wenn das Script-Tag im Kopf würden Sie Ihren Code haben ausgeführt, bevor Element

existiert

$(function() { 
    // Dropdown toggle 
    $('.rs-dropdown-toggle').click(function(){ 
     $(this).next('.rs-dropdown').slideToggle('slow'); 
    }); 

    $(document).click(function(e) { 
     var target = e.target; 
     if (!$(target).is('.rs-dropdown-toggle') && !$(target).parents().is('.rs-dropdown-toggle')) { 
     $('.rs-dropdown').slideUp(); 
     } 
    }); 
    // moved inside the ready handler 
    $(".rotate").click(function(){ 
     $(this).toggleClass("down"); 
    }); 

}); 
+0

Es ist Arbeit! Danke. Aber jetzt diese jquery Konflikte mit anderen jquery & plugins, die jquery verwenden, ist das möglich machen es einzigartig, um keinen Konflikt mit anderen zu vermeiden –

+0

Hängt davon ab, was "Konflikte" bedeutet? Sie müssen wirklich lernen, spezifischer mit Ihren Problemaussagen zu sein – charlietfl

+0

ich definiere nur die jquery-Version mit noconflict. .. jetzt ist es Arbeit ... 'var jq213 = jQuery.noConflict (true);' –

-5

versuchen

$.noConflict(); 

statt

jQuery.noConflict(); 
+2

Hat diese Art von Zweck nicht den Zweck? –

+0

oder es könnte wegen $ (document) .click (function (e) und $ (". Rotate"). Klicken (function() beide klicken funktionen – Kunal

Verwandte Themen