W mojej strony JSP dodałem kilka linków:jQuery kliknij zdarzenie nie działa po dodaniu klasy
<a class="applicationdata" href="#" id="1">Organization Data</a>
<a class="applicationdata" href="#" id="2">Business Units</a>
<a class="applicationdata" href="#" id="6">Applications</a>
<a class="applicationdata" href="#" id="15">Data Entity</a>
Posiada funkcję jQuery zarejestrowanym dla zdarzenia kliknij:
$("a.applicationdata").click(function() {
var appid = $(this).attr("id");
$('#gentab a').addClass("tabclick");
$('#gentab a').attr('href', '#datacollector');
});
doda klasę , tabclick
do <a>
, który jest w środku <li>
z id="gentab"
. Działa dobrze. Oto mój kod na <li>
:
<li id="applndata"><a class="tabclick" href="#appdata" target="main">Application Data</a></li>
<li id="gentab"><a href="#datacollector" target="main">General</a></li>
Teraz mam kliknij obsługi jQuery dla tych linków
$("a.tabclick").click(function() {
var liId = $(this).parent("li").attr("id");
alert(liId);
});
Na pierwszy link jest w porządku pracy. Alarmuje identyfikator <li>
. Ale dla drugiego <li>
, gdzie class="tabclick"
został dodany przez pierwszy jQuery nie działa.
Próbowałem $("a.tabclick").live("click", function()
, ale nie zadziałało też pierwsze zdarzenie kliknięcia linku.
Użyj 'on' delegacji zdarzeń – Razor
o delegacji zdarzeń, zobacz ten SO pytanie: http://stackoverflow.com/questions/8110934/direct-vs-delegated-jquery-on – LeGEC