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.
2 odpowiedzi
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!
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>