【问题标题】:Favorite Item Javascript最喜欢的项目 Javascript
【发布时间】:2015-01-29 11:04:23
【问题描述】:

我正在制作一个添加收藏项的功能,当您单击时会有一个心形图标,它应该将颜色从灰色变为红色并保存状态。 之前我有一个选择框可以保存状态但图片无法适配功能。

我可以保存和更改状态的选择框:

 <select id="priority-select-<?php echo $id ?>" class="form-control" name="priority[<?php echo $id ?>]" title="<?php echo $this->__('Priority') ?>">
                                <?php foreach($_hlp->getPriorities() as $k=>$v):?>
                                    <option value="<?php echo $k ?>" <?php if ($k == $item->getPriority()){ echo "selected"; } ?>><?php echo $this->htmlEscape($v) ?></option>
                                <?php endforeach; ?>
                            </select>

我正在尝试使用图像作为图标:

<img id="heart-l-<?php echo $id ?>"
                                 src="<?php if ($item->getPriority() < 1) {echo $this->getSkinUrl('images/heart-m-disabled.png');} else {echo $this->getSkinUrl('images/heart-m.png');} ?>"
                                 alt=""  onclick='adicionaFav(this.id)'/>

我的 javascript 代码:

<script type="text/javascript">
    var $jq = jQuery.noConflict();


    var heart_m = "<?php echo $this->getSkinUrl('images/heart-m.png') ?>";
    var heart_m_disabled = "<?php echo $this->getSkinUrl('images/heart-m-disabled.png') ?>";


    var valor;
    function adicionaFav(id) {

        if(document.getElementById(id).src == "<?php echo $this->getSkinUrl('images/heart-m-disabled.png');?>"){

            document.getElementById(id).src = "<?php echo $this->getSkinUrl('images/heart-m.png');?>";
            priorityChange(1, id);
            $jq('#priority-select-' + id).val('0');

        }
        else{

            document.getElementById(id).src = "<?php echo $this->getSkinUrl('images/heart-m-disabled.png');?>";
            priorityChange(0, id);
            $jq('#priority-select-' + id).val('1');


        }


    }


    function priorityChange(size,id) {



        if(size==1){

            $jq("#heart-m-" + id).attr("src", heart_m);
        }else{

            $jq("#heart-m-" + id).attr("src", heart_m_disabled);
        }/*
         switch (size) {
         case 0: {
         $jq("#heart-m-" + id).attr("src", heart_m_disabled);
         $jq("#heart-l-" + id).attr("src", heart_l_disabled);
         break;
         }

         case 1: {
         $jq("#heart-m-" + id).attr("src", heart_m);
         $jq("#heart-l-" + id).attr("src", heart_l_disabled);
         break;
         }

         case 2: {
         $jq("#heart-m-" + id).attr("src", heart_m);
         $jq("#heart-l-" + id).attr("src", heart_l);
         break;
         }
         }*/
    }
/*
    function prioritySelect(size, id) {
        switch (size) {
            case 0: {
                priorityChange(size, id);
                $jq('#priority-select-' + id).val('0');
                break;
            }

            case 1: {
                priorityChange(size, id);
                $jq('#priority-select-' + id).val('1');
                break;
            }

            case 2: {
                priorityChange(size, id);
                $jq('#priority-select-' + id).val('2');
                break;
            }
        }
    }*/


</script>

注意:我可以改变心的颜色,但是升级时无法保存状态。

谁能告诉我我必须怎么做才能保存收藏状态? 想要优先级 = 0 表示灰色的心,优先级 = 1 表示红色的心

【问题讨论】:

  • 你坚持哪一部分?什么问题?
  • 我可以改变心的颜色,但是升级时无法保存状态。

标签: javascript magento onclick favorites


【解决方案1】:

可以解决,如下代码:

图标:

                        <img id="heart-m-<?php echo $id ?>"
                             src="<?php if ($item->getPriority() < 1) {
                                 echo $this->getSkinUrl('images/heart-m-disabled.png');
                             } else {
                                 echo $this->getSkinUrl('images/heart-m.png');
                             } ?>"
                             alt="" onclick='adicionaFav(<?php echo $id ?>)'/>

                    </div>

Javascript 代码:

<script type="text/javascript">
    var $jq = jQuery.noConflict();

    var heart_m = "<?php echo $this->getSkinUrl('images/heart-m.png') ?>";
    var heart_m_disabled = "<?php echo $this->getSkinUrl('images/heart-m-disabled.png') ?>";


    var valor;
    function adicionaFav(id) {

        if (document.getElementById("heart-m-" + id).src == "<?php echo $this->getSkinUrl('images/heart-m-disabled.png');?>") {


            $jq("#heart-m-" + id).attr("src", heart_m);
            $jq('#priority-select-' + id).val('1');
        }
        else {


            $jq("#heart-m-" + id).attr("src", heart_m_disabled);
            $jq('#priority-select-' + id).val('0');
        }


    }


    function priorityChange(size, id) {


        if (size == 1) {

            $jq("#heart-m-" + id).attr("src", heart_m);
        } else {

            $jq("#heart-m-" + id).attr("src", heart_m_disabled);
        }
    }


</script>

希望我能帮助别人! =)

【讨论】:

    猜你喜欢
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    相关资源
    最近更新 更多