Follow along with the video below to see how to install our site as a web app on your home screen.
Not: This feature may not be available in some browsers.
$('#submit').click(function() {$('#animallist').append('<option value="'+$('#animalturkjsfalan').val()+'">Faresolfamiredodoremi</option>'});
Nasıl yok yahu hata?
Üstad senin sayfa ilk yüklendi, animalturkjsfefvdssa'nin değeri ""... O anda aldın. Sonra click esnasında gönderdin.. Neye yaradı? Hiç bir şeye...
Kod:$('#submit').click(function() {$('#animallist').append('<option value="'+$('#animalturkjsfalan').val()+'">Faresolfamiredodoremi</option>'});
Sana düğmeye basıldığı andaki değeri lazım. sayfa yüklendiği andaki değil...
Edit: Javascript sayfada canının istediği yerde tanımlanır. html5'ten beri google bile SEO puanı düşürmez.
$(...).click(function(){...}); doğru kullanımdır. Click için event append edersin.
Onları düzeltmene gerek yok üstadım.
Aynen hocam aslında oldukça acemice bir hata o yüzden hiç düşünmedim onuDaha önce karşılaştığım tipik hatalardandır diye aslında kodlara da tam bakmadım ve saatlerdir hala uyumadığım için epey dalgınım. Ayrıca Click konusunda dediğim şey dinamik oluşturulan elementler içindi. Zaten jqueryde dinamik bir elementte Click, Change gibi metodlar çalışmaz. Onun yerine on("click",) şeklinde kullanmak gerekiyor. Arkadaş bir üst satırda on() şeklinde kullanmış ona da dikkat etmedim
Zaten bir altta optionları dinamik eklediği için on kullanmasa üstteki kod çalışmayacaktı başta kastettiğim şey oydu. Son olarak da script tagını istediğin yerde kullanabilirsin demişsiniz, aksini demedim ben de
Sadece JQueryde defalarca bu sorunla karşılaştım ben. Head tagına yazdığım jquery taglarının bugüne kadar çalıştığını ben görmedim
O yüzden bende artık alışkanlık olmuş. Artık direk jquery dosyasını bile body tagının içinde çağırıyorum hep.
on("click",function(){}) == click(function(){}
Herşey için, her zaman... Jquery'nin kendi içindeki bir kısaltma bu. Dinamik veya statik her element için çalışır.
Aynı şekilde, head tag'ına koyduğun jquery'nin çalışmamasının tek sebebi, ********.ready() içine koymaman olabilir, daha yüklenmemiş elementler üstünde işlem yapmaya çalışıyordur. 2000 yılında bile nereye koyarsan koy, javascript çalışırdı. 2000 senesinde hamush.geocities.com'un içinde <html>'den hemen önce geocities reklamını kapatan javascript vardı(sahi hala açık mı ki o site ya?)
Ama eskiden SEO kurallarında "bütün scriptler header içinde olmalıdır" kuralı vardı.. Şimdi artık kaldırıldı o saçma kural.
Anladım hocam dediğiniz gibi kodlarımı nedense hiçbir zaman dcnt.ready içine yazmıyorum. Click olayda ise hala size katılmıyorumDediğiniz gibi ikisi aynı şey ama nedense dinamik oluşturulan bir elementte Click() şeklinde çalışmıyor ya da onun da sebebi kodlarımı dcmnt.ready içine yazmamam olabilir. Ben artık uyusam iyi olacak. Uyandığımda ilk işim dediğinizi denemek olacak.
Düzeltme : Dayanamayıp googleda da bir aratayım dedim jquery - Difference between .on('click') vs .click() - Stack Overflow
Millet de aynı şeyi demiş hocam. On() dinamik oluşturulan elementler için kullanılıyor demişler onlar da galiba. Yani ingilizcemin yettiği kadarıyla bunu anlayabildim.
$(********).ready(function(){
$('body').append('<p id="osman">Şimdi test edelim</p>');
$('#osman').click(function() {
$(this).text('Ben demiştim...');
});
});