jquery się wczytuje, ale nie wykonuje

Odpowiedz Nowy wątek
2017-06-18 12:26
0

Mam taki problem mam projekt w laravelu i teraz bibliiteka jquery się dobrze wczytuje, ale już kod jquery nie wykonuje zwykły kod javascript wykonuje, w konsoli nieczewgo nie ma, ale jak umyślnie zrobie błąd np. w naziwe funkcji to wtedy jest ten błąd w konsoli, daje kod źródłowy.

          <div id=edytuj1>
 
                  <form method=get>
       <span class=normalna3>Nazwa substancji</span><select id=nazwa1{{$i}}>
          </form>
          </select>
          </div>
        </div></div>
        <div id=edytujd>tomek</div>
  <div class="col-md-2 col-xs-2"></div>
 

plik js.

var i = 1;
var pasek;
//$("#opis_a").hide();
while (i < 4000 ) {
  pasek = "#dodaj1" + i;
  edytuj = "#edytuj1" + i;
  opis = "#opis" + i;
  opisz = "#opisz" + i;
  $(pasek).hide();
  $(edytuj).hide();
  $(opis).hide();
  $(opisz).hide();
  i++;
 
}
//tego kodu nie wykonuje.
  $('#edytujd').click(function() {
 
    alert("dobrze");
 
  });

Plik szablonu

<link href="{{ asset('./style.css') }}" rel="stylesheet"> 
<link href="{{ asset('./bootstrap-3/css/bootstrap.min.css') }}" rel="stylesheet"> 
<script src="{{asset('./jquery.js')}}"></script>
<script src="{{asset('./funkcje.js')}}"></script>

Pozostało 580 znaków

2017-06-18 12:55
0

Nie używam Laravela, ale:

  1. Czemu w HTMLu nie masz cudzysłowów? Np. <div id=edytujd>tomek</div> zamiast <div id="edytujd">tomek</div>
  2. Zdefiniuj porządnie zmienne w JS
  3. Zmień $('#edytujd').click(function() {} na $(document).on("click", "#edytujd", function(){alert("dobrze");} . Jeśli ładujesz/generujesz HTML dynamicznie, być może jQuery uruchamia się kiedy ten element jeszcze nie jest w DOMie

Pozostało 580 znaków

2017-06-18 13:00
0

Zmieniłem na to co podałaś i nadal to samo.

Pozostało 580 znaków

2017-06-18 13:12
0

Co to znaczy nie wykonuje? Bo moim zdaniem kod się wykonuje (odbywa się bindowanie eventy), ale źle podpinasz event, więc po kliku się nic nie dzieje.

Można to prosto zdebugowac. Zastąp niedziałający kod tym:

$(document).click(function() {
  alert('jquery działa');
});

W zasadzie tylko potwierdzimy, że źle bindujesz, albo masz kilka elementów o tym samym id. Gdyby jQuwry nie było, to byś miał error w konsoli w stylu: reference error $ is not a function

edytowany 2x, ostatnio: Desu, 2017-06-18 13:19

Pozostało 580 znaków

2017-06-18 13:18
0

Teraz działa, ale jak mam inaczej podpiąć kod ?

Pozostało 580 znaków

2017-06-18 13:19
0

Masz kilka takich samych id na stronie, albo podpinasz event pod zły selektor.

W tym Twoim kodzie widać jakieś id tworzone z użyciem {{ $i }}, pętli nie widać, więc caly ten kod jest pewnie wewnątrz bloku for, z czego wynika, że masz co najmniej kilkanaście takich samych id :P bo button, który Ci nie działa ma stały id, tzn. nie tworzysz go dynamicznie z użyciem zmiennej iteracyjnej.

edytowany 3x, ostatnio: Desu, 2017-06-18 13:32

Pozostało 580 znaków

2017-06-18 13:44
0

To musi mieć związek z laravelem, ponieważ jak wstawiłem

tomek

poza sekcją @endsection to wtedy to działa.

Pozostało 580 znaków

2017-06-18 13:47
0

Otwórz źródło strony ctrl + u w Chrome i policz ile masz elementów o id="edytujd"

Pozostało 580 znaków

2017-06-18 13:51
0

Jeden element.

Pozostało 580 znaków

2017-06-18 13:53
0

Ok to teraz zmień id na klasę i zobacz co się stanie.

Pozostało 580 znaków

2017-06-18 13:54
0

To samo.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0