将PHP实现到网站中。如何从数据库中为每个id调用jquery函数?

时间:2012-01-22 13:00:50

标签: javascript jquery html

这是测试页面: http://grozav.com/test.php

我正在尝试从mysql数据库表中为每个图像添加一个jquery函数。 这是生成的代码:

<div class="thumb" id="grozav-thumb">
<a class="ajax" href="gallery/grozav.html">
<p class="work-type">MOTION GRAPHICS</p>
<img src="http://grozav.com/images/thumbs/grozav-bwthumb.jpg" alt=""/>
<img src="http://grozav.com/images/thumbs/grozav-thumb.jpg" alt="" class="color"/>
</a></div>

我需要一个函数,它使用类缩略图为每个div创建一个代码。结果应该是这样的:

* thumbnail()是一个函数

thumbnail('divid');

类似

thumbnail('grozav')

非常感谢!


在阅读完建议后,我已将代码更改为:

function thumbnail(param1){
$(param1).hover(
    function() {
        $(param1+' .color').hide().stop().fadeTo(500,'1');
    },
    function() {
        $(param1+' .color').stop().fadeTo(500,'0');
    }
) ;                 
};

for(var p in document.querySelectorAll('div.thumb'))

thumbnail(p.id);

EDIT 问题解决了。 我使用以下jQuery代码来完成它,这似乎工作正常。

$("div.thumb").each(function (){
    var id = $(this).attr('id');  
    thumbnail(id);});

将函数应用于通过php创建的每个div。无论如何,谢谢你们!

2 个答案:

答案 0 :(得分:1)

您的thumbnail功能已在$(document).ready(function(){中定义。这意味着,在网站完全加载之前,浏览器不会知道thumbnail()。因此,当您的浏览器在您的div中遇到<script>thumbnail('img0');</script>时,它不知道这个thumbnail意味着什么。

您应该在定义缩略图后立即调用缩略图。像

这样的东西
function thumbnail(param1){
$('#'+param1+'-thumb').hover(
    function() {
        $('#'+param1+'-thumb .color').hide().stop().fadeTo(500,'1');
    },
    function() {
        $('#'+param1+'-thumb .color').stop().fadeTo(500,'0');
    }
) ;                 
};

for(var p in document.querySelectorAll('div.thumb'))
    thumbnail(p.id);

也许在jQuery中有比这更好的解决方案,但这应该满足你的需求。

编辑:使用浏览器的错误控制台(本例中为[xx:xx:xx.xxx] thumbnail is not defined @ http://grozav.com/test.php#portfolio:119) - 它可以帮助您更快地找到错误。

答案 1 :(得分:0)

问题解决了。我使用以下jQuery代码来完成它,这似乎工作正常。

$("div.thumb").each(function() {
    var id = $(this).attr('id');  
    thumbnail(id);
});

将函数应用于通过php创建的每个div。无论如何,谢谢你们!