2012-03-04 56 views
0

我不是程序员,所以我很抱歉如果我的问题没有多大意义。加载AJAX页面后调用Javascript函数

但基本上我有一个页面index.php有一组过滤器(按项目,年份,月份),按提交后发送变量filterData.php用于一些SQL语句。

将图像缩略图表格形式的结果返回到index.php中的div。我想要做的就是这样,当用户点击图像时,边框颜色将会改变以突出显示当前对象。

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.thumbnail_small').click(function(){ 
     $(this) 
      .css('border-color','#000') 
      .siblings() 
      .css('border-color','#ccc'); 
    }); 
}); 
</script> 

^这是我现在的脚本,它的工作原理是,如果缩略图表被硬编码到index.php中。一旦我通过filterData.php加载表,它不再工作。

这是什么原因,我该如何解决它?

回答

1

曾经有过filterData.php装表,这是行不通的 了。

使用live或更好on取决于jQuery的版本使用的是:

$('#mainContainer').on('click', '.thumbnail_small', function(){ 
    $(this) 
     .css('border-color','#000') 
     .siblings() 
     .css('border-color','#ccc'); 
}); 

或者

$('.thumbnail_small').live('click', function(){ 
    $(this) 
     .css('border-color','#000') 
     .siblings() 
     .css('border-color','#ccc'); 
}); 

对于稍后或动态添加的元素,你必须使用liveon

+0

是#mainContainer父div吗?我正在使用Jquery 1.3,这是我改变它但它仍然不起作用:
user1067577 2012-03-04 15:52:40

+0

@ user1067577:是的,你应该有一个id为id的容器,例如'id =“mainContainer”'你可以改变它的名字或者使用现有的名字。或者你可以简单地在我的答案中使用第二个例子。 – Sarfraz 2012-03-04 15:54:14

+0

你真了不起!非常感谢你:)我用第二个例子。 – user1067577 2012-03-04 15:57:23

相关问题