程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> js onclick-div的點擊事件,有復雜的循環判斷,用 js和 jquery都行

js onclick-div的點擊事件,有復雜的循環判斷,用 js和 jquery都行

編輯:編程解疑
div的點擊事件,有復雜的循環判斷,用 js和 jquery都行

n個div,每個div裡都有一個單選按鈕, 效果:1、**點擊第一個div**,單選被選中(單選框用圖片代替),再次點擊第一個div,單選被取消;2、同時,點擊第二個div時,單選被選中,第一個div的單選被取消;

最佳回答:


 <div onclick="clickDiv(this)"><input id="radio1" type="radio" value="1" />Value 1</div>
<div onclick="clickDiv(this)"><input id="radio2" type="radio" value="2" />Value 2</div>
<div onclick="clickDiv(this)"><input id="radio3" type="radio" value="3" />Value 3</div>
<div onclick="clickDiv(this)"><input id="radio4" type="radio" value="4" />Value 4</div>
<div onclick="clickDiv(this)"><input id="radio5" type="radio" value="5" />Value 5</div>
<div onclick="clickDiv(this)"><input id="radio6" type="radio" value="6" />Value 6</div>

<script type="text/javascript">

    var lastRadio;
    var lastAction;
    var allRadio = [];

    //初始化獲得到所有單選鈕
    (function(){

        var allInput = document.getElementsByTagName("input");              
        for(var i=0;i<allInput.length;i++){
            if(allInput[i].type=="radio"){
                allRadio.push(allInput[i]);
            }
        }
    }());

    //當DIV被點擊時觸發
    function clickDiv(divObj){

        var obj = divObj.children[0];
        obj.checked = true;

        for(var i=0;i<allRadio.length;i++){
            if(obj.id == allRadio[i].id){
                var currRadio = document.getElementById(obj.id);
                if(currRadio == lastRadio & lastAction){
                    currRadio.checked = false;
                }
                lastRadio = currRadio;
                lastAction = currRadio.checked;

            }else{
                document.getElementById(allRadio[i].id).checked = false;
            }
        }
    }

</script>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved