使用jQuery attr()将变量作为值传递的正确语法是什么。我想做的是:
var under700 = 'image.jpg'
$('.two_images img').attr('src', (under700) );
从答复来看,我可能过于简单了。如果这增加了任何清晰度,这是函数的其余部分。
$(document).ready(function() {
function imageresize() {
var contentwidth = $('#two_up').width();
var under700 = '<?php bloginfo('template_url'); ?>/scripts/timthumb.php?src=<?php echo $image_img_tag[0] ?>&w=340'
if ((contentwidth) < '700'){
// I also tried defining the variable here
$('.two_images img').attr('src', under700 );
} else {
// this one works fine
$('.two_images img').attr('src','<?php echo $image_img_tag[0] ?>');
}
}
imageresize();//Triggers when document first loads
$(window).bind("resize", function(){//Adjusts image when browser resized
imageresize();
});
答案 0 :(得分:2)
$('.two_images img').attr('src', under700);
不需要内支架,但它们不会阻止它工作。
答案 1 :(得分:1)
你是否尝试过没有php的代码?看起来你可能在这一行上有太多单引号的问题,但是如果没有看到文档的其余内容就很难分辨。
尝试用简单的字符串替换php echos,例如:var under700 = '123';
,并确保使用半冒号结束变量声明行,看起来可能也会丢失,并且可能导致奇怪的错误。
答案 2 :(得分:0)
我认为这一行是错误的:
if ((contentwidth) < '700'){
jQuery的width()
函数返回一个整数,因此您不需要700
周围的引号:
if(contentwidth < 700) {
试试。
答案 3 :(得分:0)
<script>
// declare early
function imageresize() {
var contentwidth = $('#two_up').width();
// double quoted: "template_url" and missing ; at the end of line
var under700 = '<?php bloginfo("template_url"); ?>/scripts/timthumb.php?src=<?php echo $image_img_tag[0] ?>&w=340';
// extra parentheses for contentwidth are not necessary
if (contentwidth < 700)
$('.two_images img').attr('src', under700 );
else
$('.two_images img').attr('src','<?php echo $image_img_tag[0] ?>');
}
// run after document is ready
$(document).ready(function() {
imageresize();
});
</script>
虚拟例子:
<?php
// test.php
function bloginfo($a) {
echo "http://somebloginfo.com/qwerty";
}
$image_img_tag = array("someimagtag.jpg");
?>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>
function imageresize() {
var contentwidth = $('#two_up').width();
var under700 = '<?php bloginfo("template_url"); ?>/scripts/timthumb.php?src=<?php echo $image_img_tag[0] ?>&w=340';
if (contentwidth < 700)
$('.two_images img').attr('src', under700 );
else
$('.two_images img').attr('src','<?php echo $image_img_tag[0] ?>');
}
$(document).ready(function() {
imageresize();
});
</script>
</head>
<body>
test
<div id='two_up' style="width: 400px;"></div>
<div class="two_images">
<img />
<img />
</div>
</body>
</html>