【问题标题】:Javascript toggling image and divJavascript切换图像和div
【发布时间】:2014-09-16 05:58:36
【问题描述】:

我正在尝试同时切换图像并切换 Div 的可见性,这就是我目前所拥有的。当我单击图像以激活切换时,它正在提交表单,这并不理想...

<div class="field">

        <script>
  function toggle(){
if(el.className!="off")
{
    el.src='off.png';
    el.className="off";
    var div1 = document.getElementById('1')
    div1.style.display = 'block'
}
else if(el.className=="off")
{
    el.src='on.png';
    el.className="on";
    var div1 = document.getElementById('1')
    div1.style.display = 'none'
}

return false;
}
        </script>

      <label for="Recurring">Recurring:</label> <input style="width:60px;" type="image" src="on.png" class="on" onclick="toggle();"/></div>

      <div style='display:none;' id="1" class="field"><label for="frequency">Please select the frequency:</label><select id="frequency" name="frequency">

        <option value>Please Select</option>
        <option value="10">10</option>

        </select>
        </div>

【问题讨论】:

标签: javascript html css toggle togglebutton


【解决方案1】:

我会稍微更改您的代码,添加一个事件侦听器,而不是将 javascript 注入您的标记(这是首选方法)。你可以试试这段代码:

 window.onload = function() {

        var input = document.getElementById('input');

        input.addEventListener('click', toggle);

 }

输入需要id='input,切换功能需要稍作修改:

function toggle(e){
    e.preventDefault();

    var el = e.toElement

    //rest of code

}

e.preventDefault() 会阻止页面刷新。

【讨论】:

  • 对,preventDefault() 是必要的,因为输入类型“图像”的工作方式类似于提交按钮(具有图像而不是经典按钮样式)。另一种选择可能是只使用 标签而不是输入,并为“click”事件添加事件侦听器。
  • 如何将其更改为 img 标签而不是输入 Carla?
  • 您可以将输入标签替换为:&lt;img style="width:60px;" src="on.png" id='image' /&gt;,然后将事件监听器替换为:var element = document.getElementById('image')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 2013-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 1970-01-01
相关资源
最近更新 更多