Was ist der Unterschied zwischen .click (…) und .live ('click',…)?
Bedenke diefolgender Code:
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');
}
Dieser Code funktioniert wie erwartet, d. H.log()
wird nur aufgerufen, wennenabled
licken Sie auf die Schaltfläche @.
Aber wenn ich @ erset(1)
mit(2)
, log()
heißt auch wenn nichtenabled
licken Sie auf die Schaltfläche @.
Warum das
Was ist der Unterschied zwischen(1)
und(2)
?