Рассмотрим following code:В чем разница между .click (...) и .live ('click', ...)?
HTML:
<div id='button' class='enabled'>Press here</div>
<div id='log'></div>
CSS:
#button {
width: 65px;
height: 25px;
background-color: #555;
color: red;
padding: 10px 20px;
}
#button.enabled {
color: #333;
}
#button.enabled:hover {
color: #FFF;
cursor: pointer;
}
JavaScript:
$(function() {
$('#button.enabled').live('click', function() { // (1)
//$('#button.enabled').click(function() { // (2)
log('#button.enabled clicked');
});
});
function log(str) {
$('#log').append(str + '<br />');
$('#button').toggleClass('enabled');
}
Этот код работает, как ожидалось, т.е. log()
вызывается только когда enabled
нажата кнопка.
Но, если я заменю (1)
на (2)
, log()
вызывается также, когда не нажата кнопка enabled
.
Почему?
В чем разница между (1)
и (2)
?
Большое спасибо Ник! Ты лучший !! –
@ Misha - приветствуется :) Надеюсь, что это ясно, это определенно является путаницей для * многих пользователей jQuery. –