在你的例子中,所有的div都有相同的id。 Id必須是唯一的。如果你給他們每個唯一的ID,你的代碼是否工作?
<div id="tile1" rel="1">tile 1 preview content</div>
<div id="tile2" rel="2">tile 2 preview content</div>
<div id="tile3" rel="3">tile 3 preview content</div>
$('#tile1').on('click', function(){
var projectId = $(this).attr('rel');
$('#projectLoad').load('project.php?id='+projectId);
});
$('#tile2').on('click', function(){
var projectId = $(this).attr('rel');
$('#projectLoad').load('project.php?id='+projectId);
});
$('#tile3').on('click', function(){
var projectId = $(this).attr('rel');
$('#projectLoad').load('project.php?id='+projectId);
});
注意測試這個功能,你可以試試這個jQuery代碼:
$('#tile1').on('click', function(){ alert('hello from div 1'); });
$('#tile2').on('click', function(){ alert('hello from div 2'); });
$('#tile3').on('click', function(){ alert('hello from div 3'); });
由於Palash在他的回答中提到,您可以使用類而不是ID的避免這種重複。 (類不必是唯一的。)
<div class="tile" rel="1">tile 1 preview content</div>
<div class="tile" rel="2">tile 2 preview content</div>
<div class="tile" rel="3">tile 3 preview content</div>
$('.tile').on('click', function(){
var projectId = $(this).attr('rel');
alert('hello from div ' + projectId);
})
下面是一個的jsfiddle顯示這個簡單的測試 - http://jsfiddle.net/RHXGS/
另外,自成體系,測試從註釋中加入
<!DOCTYPE html>
<html>
<head>
<title>Click Test</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('.div1').on('click', function() {
alert('Click!');
$('#div2').html('content');
});
});
</script>
</head>
<body>
<div class="div1">click me</div>
<div id="div2"></div>
</body>
</html>
「不工作」是什麼意思?錯誤?沒有結果? #projectLoad在哪裏?你確定project.php正在返回你認爲它是什麼嗎? – 2013-04-23 18:47:26
沒有任何其他信息很難說。你可以發佈完整的HTML/JS爲一個最小的例子嗎? – ubik 2013-04-23 18:47:40
是否能夠在控制檯中看到響應? – 2013-04-23 18:47:53