2012-03-17 27 views
7

zaten iç içe olduğu jQuery seçiciler var mı.İçiçe jQuery Seçiciler

Örneğin

: sayfasına da bir ID = "LeadEditForm_Title" yere sahiptir

o zaman aşağıdakileri yapın ...

jQuery("[id='A0.R0.Main Phone Number']").live('mousedown',function(e) { 
    var container = $(this).width(); 
    var width_offset = -50; 
    var top_offset = 25; 
    var width = (container + width_offset).toString(); 
    jQuery(".mywidget").appendTo(document.body).css('width', width + 'px'); 
    jQuery(".mywidget").appendTo(document.body).css('position', 'absolute'); 
    jQuery(".mywidget").appendTo(document.body).css('top', ($(this).offset().top+top_offset).toString() + 'px'); 
    jQuery(".mywidget").appendTo(document.body).css('left', Math.round($(this).offset().left) + 'px'); 
}); 

SORU:

Bir Nasıl yapacağım jQuery(".LeadEditForm_Title") ise, yukarıdakileri yapın ??? temelde iç içe bir jQuery çağrı ... Ben sahip oldukları örnek gördüm:

jQuery(function(){ // my code goes here }); 

Ama kimliği ".LeadEditForm_Title" bağlıdır istiyorum. yuva seçicileri için

+0

Bildiğim kadarıyla söyleyebilirim ki, bu işlev iyi görünüyor. –

+2

Kimlik numaranızda boşluk var mı? HTML spec, kimliklerin boşluklara sahip olamayacağını söylüyor. Normalde '#' ile kimlikleri seçersiniz. Yani '$ ("# MyID")'. –

+0

Neden "mousedown" ve "tıklama" değil? Ayrıca kimlikleri böyle boşluklara sahip olmamalı, doğrulayacağından şüpheliyim. Sen data' yerine ... – elclanrs

cevap

22

, sen find kullanın:

jQuery('#mySelectorId').find('.mySelectorClass') 

Bu durum bunu aynıdır:

jQuery('#mySelectorId .mySelectorClass') 

arasına boşluk koymak için emin olmak. Boş alan olmadan o sınıf ve numaralı bir öğeyi seçiyorsunuz.

Ben de senin kod muhtemelen bunu bildiğini yapmak unutmayın olacaktır:

jQuery("[id='A0.R0.Main Phone Number']").live('mousedown',function(e) { 
    var container = $(this).width(); 
    var width_offset = -50; 
    var top_offset = 25; 
    var width = (container + width_offset).toString(); 
    jQuery(".mywidget").appendTo(document.body).css('width', width + 'px'); 
    jQuery(".mywidget").appendTo(document.body).css('position', 'absolute'); 
    jQuery(".mywidget").appendTo(document.body).css('top', ($(this).offset().top+top_offset).toString() + 'px'); 
    jQuery(".mywidget").appendTo(document.body).css('left', Math.round($(this).offset().left) + 'px'); 
}); 

son 4 jQuery(".mywidget") aramalar vücuda her zaman widget'ı ekliyoruz. Bunun dışında,

jQuery("[id='A0.R0.Main Phone Number']").live('mousedown',function(e) { 
    var container = $(this).width(); 
    var width_offset = -50; 
    var top_offset = 25; 
    var width = (container + width_offset).toString(); 
    jQuery(".mywidget").appendTo(document.body).css({ 
     width: width + 'px', 
     position: 'absolute', 
     top: ($(this).offset().top+top_offset).toString() + 'px', 
     left: Math.round($(this).offset().left) + 'px'; 
    }); 
}); 

Not sizin id:

jQuery("[id='A0.R0.Main Phone Number']").live('mousedown',function(e) { 
    var container = $(this).width(); 
    var width_offset = -50; 
    var top_offset = 25; 
    var width = (container + width_offset).toString(); 
    jQuery(".mywidget").appendTo(document.body).css('width', width + 'px').css('position', 'absolute').css('top', ($(this).offset().top+top_offset).toString() + 'px').css('left', Math.round($(this).offset().left) + 'px'); 
}); 

aynı zamanda bir css çağrısına azaltılabilir: Gerçekten sadece her stil için css kez ekleyip değiştirmek istiyorum HTML özelliklerine göre boşluk olması gerekmez. Eğer geçerli bir kimliğe sahip olursa, böyle seçmek olacaktır:

jQuery("#A0.R0.Main_Phone_Number") 
+0

zaten bu var var demektir? If (jQuery (başka bazı şeyi yaparsan 'kullanabilirsiniz "# A0.R0.Main_Phone_Number")) sonra (benim diğer jQuery çağrı yapmak) ... – htmlfarmer

+0

Eğer başarmak için çalışıyorsun? "öteki çağrıyı" ne anlama geliyor? –

+0

size html ne yaptığını tarif yardımcı olurdu Ve gerçekten ne olmak istiyorsan ... –

-4

Eğer iç içe geçmiş bir jQuery aşağıdaki gibi yapabilirsin diyoruz yapmak istiyorsanız ...

$(document).ready(function(){ 
    $(document).ready(function(){ 
    // javascript code here... 
    }); 
}); 
+1

Bu çok uygunsuz bir cevap. – Jason

+0

@Jason, kendim gibi uygunsuzluğun nedenini açıklayabilir misiniz? – Eoin