jQuery ipuçları – 3
Jquery ipuçları – 1
Jquery ipuçları – 2
jQuery ipuçlarını yayınlamaya devam ediyorum.
1- Dinamik oluşturulan elementlere live() ile olay atama
Sayfaya dinamik olarak eklenen içeriklerde veya ajax ile doldurduğumuz içeriklerdeki elemanlara bir olay atadığımızda(click, mouseover vd.) çalışmayacaktır. jQuery geliştiricileri bunun için live() fonksiyonunu geliştirmiş.
$('a.acilSusam').live('mouseover', function() {
// yapilacak islemler
});
2 – Tarayıcı Penceresinin Boyutlarını Değişmesini Yakalamak
Belki ara sıra lazım olacak bir kod ama bazen gerekiyor işte. Pencere boyutu her değiştiğine bazı işlemleri yapmak sistemimizi yorabilir diye setTimeout yardımı ile belli aralıklarla bunu yaptırıyoruz.
function pencereBoyutuDegisti() {
alert("Değişti");
};
var resizeTimer = null;
$(window).bind('resize', function() {
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(pencereBoyutuDegisti, 100);
});
3 – Element miktarını bulmak
Bir dokümanda seçilen elemandan kaç adet olduğu bulmak için;
$('element').size();
4 – Bir elemanın index değerini bulmak
index değerini bulmanın farklı bir yolu
$("ul > li").click(function () {
var index = $(this).prevAll().length;
});
5- Bir elemanın görünür olup olmadığını yakalamak
if($(".eleman").is(":visible")) {
alert('Burda');
}
6- Kaç tane alt elemanı(çocuk elemanı) var
<div id="foo">
<div id="bar"></div>
<div id="baz">
<div id="biz">
</div>
<span><span>
</div>
//kac tane alt elemanı oldugunu bulmak icin
$("#foo > div").length
7- jQuery Kopya Kağıdı(Cheat Sheet)
jQuery’nini bir çok özelliği var ve bunları aklımızda tutma imkanımız yok. Bir kopya kağıdı işimize yaraya bilir.
http://www.futurecolors.ru/jquery/
Burada son sürümün kopya kağıdı mevcut. Bende css3 özelliklerini kullanarak biraz renklendirdim. Benim renklendirdiğim(CSS3 içerir, herisi göremez)
8 – Select Elemanı ipuçları
// secili olan ögenin metnini almak
$("#myselect option:selected").text();
// secili olan ögenin degerini almak icin
$("#myselect option:selected").val();
// secili ogenin index degeri
$("#myselect option").index($("#myselect option:selected"));
// indeksi 2 olan ögeyi seçili hale getirmek
$("#myselect option:eq(2)").attr("selected", "selected");
Kaynaklar
- http://blog.kenmoredesign.com/2009/02/02/useful-jquery-snippets/
- http://tympanus.net/codrops/2010/01/07/some-useful-javascript-jquery-snippets-part-2/
- http://www.catswhocode.com/blog/10-jquery-snippets-for-efficient-developers
- http://tympanus.net/codrops/2010/01/08/some-useful-javascript-jquery-snippets-part-3/
- http://www.opensourcehunter.com/2010/02/27/26-cool-and-usefull-jquery-tips-tricks-solutions/
[...] jQuery ipuçları – 3 [...]
[...] Jquery ipuçları – 1 Jquery ipuçları – 2 Jquery ipuçları – 3 [...]
Şu sisteme bir merak saramadım, acayip harika çalışmalar var. Teşekkürler.
bu tür olay dinleme için delegate() kullanımını tavsiye ediyor geliştiriciler.
Ayrıca jQuery API browser çok işinize yarayabilir:
http://www.jqapi.com
Bu Jquery derya … MS 'in .NET 'i gibi her türlü gider yani.
@Ahmet vardır. 'live()' yeni bir element eklendiğinde onu da kapsar. http://api.jquery.com/live/
Fatih abi güzel bir makale olmuş eline emeğine sağlık.
aynı anda yazmışız
Ben live() yerine bind() kullanıyordum.
$('#mail').bind('keyup', function() {KucukHarf($(this))})
Bind() ve Live() arasında fark var mıdır?
bind() mevcut olan ve hazırda bulunan elemanlara olay eklemek için kullanılırken
live() mevcut olan ve sonradan oluşturulacak elemanlara olay eklemek için kullanılır. Live sadece click, dblclick mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup olayları eklenebilir.
ayrıntılı bilgi http://api.jquery.com/live/#typefn