次のコードでは、10個の要素を作成し、それらすべてをjQueryコードに渡して機能を取得します。ただし、1つをクリックすると、すべてのクリックイベントが発生します。このコードの1つをクリックすると、その要素のイベントのみが発生するように、このコードを変更するにはどうすればよいですか?
html / php:
<?php
for ($x = 0; $x < 10; $x++) {
$r .= '<div class="testItem"><span class="title">title1</span><span class="message"/></div>';
}
?>
<script type="text/javascript">
$(function() {
TESTITEM.initialize($('.testItem'));
});
</script>
javascript:
var TESTITEM = TESTITEM || {};
TESTITEM.initialize = function(elemTest) {
var elemTitle;
this.defineVariables = function() {
elemTitle = elemTest.find('.title');
elemMessage = elemTest.find('.message');
}
this.functionalizeElements = function() {
elemTitle.click(function(e) {
elemMessage.html('done');
});
}
this.decorateElements = function() {
elemTitle.css('color','brown');
}
this.defineVariables();
this.decorateElements();
this.functionalizeElements();
}
補遺:
これに変更して任意の要素をクリックすると、最後の要素のみにテキストが表示されます。
$('.testItem').each(function(){
TESTITEM.initialize($(this));
})