2016-10-11 5 views
0

Ich möchte eine Tabellenzeile löschen, indem Sie auf das untergeordnete Element klicken.jQuery funktioniert nicht nach dem Hinzufügen von noUiSlider jQuery

//cart remove line 
    $('.cartlineremove').click(function(e) { 
    $(this).closest('tr').remove() 
    }); 

Dies wurde getestet und es funktioniert.

Wenn ich jedoch einige andere jQuery-Methoden (einige Funktionen für eine andere PHP-Seite, aber alle meine jQuery in main.js) hinzufügen, funktionieren die Löschsymbole nicht mehr. Warum?

 //on search page, price range slider 
     var handlesSlider = document.getElementById('slider-handles'); 
      noUiSlider.create(handlesSlider, { 
      start: [ 0, 5000 ], 

      range: { 
       'min': [ 0 ], 
       'max': [ 5000 ] 
      }, 
      format: wNumb({ 
       decimals: 0 
      }) 
      }); 

      var inputPriceMin = document.getElementById('pricemin'); 
      var inputPriceMax = document.getElementById('pricemax'); 

      handlesSlider.noUiSlider.on('update', function(values, handle) { 

      var value = values[handle]; 

      if (handle) { 
       inputPriceMax.value = value; 
      } else { 
       inputPriceMin.value = value; 
      } 
      }); 

      inputPriceMin.addEventListener('change', function(){ 
      handlesSlider.noUiSlider.set([this.value, null]); 
      }); 

      inputPriceMax.addEventListener('change', function(){ 
      handlesSlider.noUiSlider.set([null, this.value]); 
      }); 


      handlesSlider.noUiSlider.on('change', function(){ 
      var $form = $('#filterform'); 
      var formData = $form.serialize(); 
      $('#pricespinner').addClass('active'); 
      $.post('find.php', formData, function(response){ 
       // do something with response 
       $('#results').load('results.php'); 
       // do something with response ends 
      }) 
      .done(function() { 
       $('#pricespinner').removeClass('active'); 
      }) 

      .fail(function(){ 
       alert("Oops something bad happened"); 
      }); 
      }); 

    //on cart page, cart remove line 
    $('.cartlineremove').click(function(e) { 
    $(this).closest('tr').remove() 
    }); 

Ich habe das Gefühl, dass es an dem noUiSlider DOM fällig ist, aber was genau es so so gemacht, dass der Moment, als ich in der Preisklasse Slider jQuery hinzufügen, das Löschen-Symbol aufgehört zu arbeiten?

Aktualisiert https://jsfiddle.net/sq66f4ak/5/.

Versuchen Sie, die noUIslider jQuery zu entfernen, und Sie werden sehen, dass das Entfernen-Symbol funktioniert, warum?

+0

Überprüfen Sie die Fehler in der Browser-Dev Tools-Konsole. Demo sagt Ihnen sofort, dass uiSlider keine Funktion ist ... was bedeutet, dass eine Abhängigkeit fehlt – charlietfl

+0

@charlietfIch habe die Abhängigkeit nicht in der Geige hinzugefügt, aber es ist in meinem Projekt. Der Schieberegler für den Preisbereich funktioniert, aber wenn er mit der Funktion zum Löschen von Tabellenzeilen hinzugefügt wird, funktioniert letzterer nicht. Ill versuchen Sie, die Abhängigkeit in der Geige – iWillGetBetter

+0

hinzuzufügen, aber der breitere Punkt ist ... haben Sie irgendwelche Fehler zu zeigen? – charlietfl

Antwort

0

In Ihrer js Geige ist die noUiSlider.create mit Fehler gescheitert. Ist das auch mit Ihrem echten Code passiert? Jeder vorherige Skriptfehler führt dazu, dass die letzte Ereignisbindung nicht funktioniert. Versuchen Sie, das Entfernen-Symbol zu verschieben, indem Sie zum Testen oben auf das Skript klicken.

+0

der noUiSlider hat in meinem projekt gut funktioniert. Ich werde die JSfiddle aktualisieren, um die Abhängigkeit einzuschließen. – iWillGetBetter

+0

Vielen Dank für Ihre Antwort, ich weiß, dass das Entfernen des Symbols Klicken Sie auf das Skript oben funktioniert, das hat die gleiche Wirkung wie das Entfernen der noUiSlider jQuery, die Sache ist, warum? – iWillGetBetter

+0

Wenn Sie die Geige mit der korrekten noUiSlider-Quelle aktualisiert haben, ist sie immer noch mit dem Fehler 'Uncaught TypeError: Kann die Eigenschaft' nodeName 'von null nicht lesen' fehlgeschlagen. Ich schlage vor, dass Sie Ihre Konsole offen halten, wenn Sie Ihr Web debuggen. Wie ich in meiner Antwort sagte. Der "noUiSlider" hat immer noch Probleme in Ihrer App. – amow

Verwandte Themen