2010-09-04 3 views
2

Я хотел бы связать функцию этот якорь, но не могу показаться, чтобы получить селектор вправонужно правильно JQuery селектор

Это не работает

$(function(){ 
$("a[onclick=='RemoveCCard_OnClick(event);']").bind('click', function() { 
alert(""); 
return false; 
}); 
}); 



<span style="display: block;" id="span_remove_selected_ccards"> 
<a style="color: rgb(153, 153, 153);" onclick="RemoveCCard_OnClick(event);" href="javascript: void(0);"> 
<span class="PageText_L31n">remove selected</span></a> 
<input type="hidden" value="1968" name="remove_ccardid" id="remove_ccardid"> 
</span> 

ответ

1

Я хотел бы предложить гораздо более простой селектор здесь не смотря на атрибут onclick, например:

$("#span_remove_selected_ccards > a").click(function() { 
    return false; 
}); 

Это использует #ID selector на родительском элементе, затем получает значение > (immediate child)<a>, чтобы связать событие. .click() - это просто ярлык для .bind('click') при передаче функции. Кроме того, спуск с селектора ID равен намного быстрее, чем поиск атрибута, который будет сканировать все привязки на странице.

+0

Как всегда Ник, вы правы на цель. Я попробовал что-то подобное, и он не работал $ ("span # span_remove_selected_ccards> a"). Возможно, я сделал что-то не так. Во всяком случае, ваш селектор отлично поработал, спасибо! – user357034

0

Не используйте селектор атрибутов. Если вам необходимо подключить обработчик события к определенному элементу, придать ему class или, если он является уникальным, в id, например, так:

<a id="unique" href="#">Look ma, I'm special!</a> 
<a class="many" href="#">You can have lots and lots of me with the same class here</a> 

Затем используйте следующие селекторы, чтобы выбрать их

$('#unique') 
$('.many') 
+0

Это совсем не ответило на мой вопрос. У меня нет доступа к этой разметке, иначе я бы поставил идентификатор в якорь. – user357034

Смежные вопросы