Doświadczam najdziwniejszego problemu, jaki kiedykolwiek spotkałem. Działało to tysiąc razy wcześniej, ale teraz po prostu uderzyłem w ścianę na ten pozornie niemożliwy do rozwiązania problemu.

Mam niestandardowy atrybut danych na elemencie:

<a href="#" data-pbid="5">My anchor</a>

Kieruję to i ostrzegam o wartości znalezionej części:

var myAnchor = $("a[data-pbid=5]");
alert(myAnchor.length) //Alerts "1".

Jednakże, gdy zmienam to do wstrzykniętej zmiennej PHP, po prostu nie działa: (Tutaj mieszasz trochę kodu, ale wiesz, co to jest.)

var_dump($pbid); //returns string(1):"5"

<a href="#" data-pbid="<?php echo $pbid?>">My anchor</a>

var myAnchor = $("a[data-pbid=<?php echo $pbid?>]");
alert(myAnchor.length) //Alerts "0".

Co się tu dzieje na ziemi?

dzięki z góry,

Rasmus Dencker.

0
rdiz 14 sierpień 2014, 14:28

2 odpowiedzi

Najlepsza odpowiedź

Znalazłem na to odpowiedź. W OP zapomniałem wspomnieć o tym, że elementy zostały załadowane i wstrzykiwane przez AJAX, i bez wyraźnego ustawiania zmiennej, którą jakoś miała trochę opóźnienia między pokoleniem a wykonaniem kodu. Jako tymczasowy hack właśnie umieściłem

setTimeout(function(){ 
                    //the stuff that had to be done
                     }, 500);

Dziękuję za gotowość do pomocy!

0
rdiz 15 sierpień 2014, 06:56

Może to być z powodu brakującego średnika lub braku przestrzeni między znacznikiem końcowym zmiennej i PHP. Zmień to

<a href="#" data-pbid="<?php echo $pbid?>">My anchor</a> do <a href="#" data-pbid="<?php echo $pbid; ?>">My anchor</a>

0
Basit 14 sierpień 2014, 10:43