гнездиться селекторов, можно использовать find
:
jQuery('#mySelectorId').find('.mySelectorClass')
Это так же, как делает это так:
jQuery('#mySelectorId .mySelectorClass')
Будучи уверены, поставить пробел между ними. Без пробела вы выбираете элемент с этим 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');
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');
});
Последние 4 jQuery(".mywidget")
вызовов при добавлении виджета на тело каждый раз. Вы действительно только хотите добавить его один раз и изменить CSS для каждого стиля:
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');
});
, который также может быть сведена к одному Css вызова:
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';
});
});
Примечание, вне этого, ваш идентификатор не должно иметь пробелов, согласно спецификации HTML. И, если у вас есть действительный идентификатор, вы выбрали бы это так:
jQuery("#A0.R0.Main_Phone_Number")
Что касается как я могу сказать, эта функция кажется прекрасной. –
Имеет ли ваш идентификатор в нем пробелы? Спецификация HTML говорит, что идентификаторы не могут иметь пробелы. Обычно вы выбираете идентификаторы с символом '#'. То есть '$ ("# MyId")'. –
Почему 'mousedown', а не' click'? также у ids не должно быть таких пространств, я сомневаюсь, что это подтвердится. Вы могли бы использовать 'data' вместо этого ... – elclanrs