我正在尝试在cakephp中更改图像onclick但是如果我的语法在放入id并添加onclick函数时是正确的,那我就不是了。以下是我的代码任何帮助表示赞赏
<?php
echo $this -> Html -> link($this -> Html -> image('button_on', array('height' => '40','width' => '70')).''.('ready'), array('id' => 'changeimg', 'onclick' => 'changeImage'), array('escape' => false)); ?>
<script language = "javascript">
function changeImage() {
if (document.getElementById("changeimg").src === "button_on") {
document.getElementById("changeimg").src === "button_off";
} else {
document.getElementById("changeimg").src === "button_on";
}
}
</script>
答案 0 :(得分:1)
检查HTML输出以确保Cake正确生成链接和图像。我不确定ready
部分的用途,但根据需要插入。你应该有像这样的Cake代码:
echo $this->Html->link(
'#', // specify a target
$this->Html->image(
'button_on',
array(
// height and width attributes are deprecated
// use CSS styles in style attribute instead
'style' => 'height: 40px; width: 70px;',
'id' => 'changeimg',
'onclick' => 'changeImage()'
)
),
array('escape' => false) // this goes in the link part, not the image
);
然后你的Javascript应该是这样的:
<script>
function changeImage() {
if (document.getElementById("changeimg").src === "button_on") {
document.getElementById("changeimg").src = "button_off";
} else {
document.getElementById("changeimg").src = "button_on";
}
return false; // prevent the link's default behaviour
}
</script>
注意:===
是一个严格的比较运算符,因此当您将src
属性分配给其他内容时,请改为使用赋值运算符=
。