cakephp更改图像onclick,输入id和函数调用

时间:2014-05-13 00:04:38

标签: javascript cakephp onclick

我正在尝试在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>

1 个答案:

答案 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属性分配给其他内容时,请改为使用赋值运算符=