HTML中的复选框会关闭.js文件中的函数

时间:2014-01-15 03:15:47

标签: javascript html checkbox

我希望制作一个复选框,当取消选中时,将关闭.js文件中的某个功能。有人能帮助我吗?

popup.html HTML复选框:                                           

content.js 关闭此功能:     var tweet = new Array();     var tweetName = new Array();

function linkSnipe() {

  for (var i = 0; i < 5; i++) {
    tweetName[i] = document.getElementsByClassName("fullname js-action-profile-name show-popup-with-id")[0].innerHTML;
    tweet[i] = document.getElementsByClassName("js-tweet-text")[i].innerHTML;
  }


  if (tweet[0].match(shoeName) == shoeName && tweet[0].match(filterer) != filterer && tweet[0].match(filter2) != filter2) {
    if(checkon == "Tweets"){
      document.getElementsByClassName("twitter-timeline-link")[0].click();
      update();
    }
  } 

  else if (tweet[1].match(shoeName) == shoeName && tweet[1].match(filterer) != filterer  && tweet[1].match(filter2) != filter2) {
    if(checkon == "Tweets"){
      document.getElementsByClassName("twitter-timeline-link")[1].click();
      update();
    }
  }

  else if (tweet[2].match(shoeName) == shoeName && tweet[2].match(filterer) != filterer && tweet[2].match(filter2) != filter2) {
    if(checkon == "Tweets"){
      document.getElementsByClassName("twitter-timeline-link")[2].click();
      update();
    }
  }

  else if (tweet[3].match(shoeName) == shoeName && tweet[3].match(filterer) != filterer && tweet[3].match(filter2) != filter2) {
    if(checkon == "Tweets"){
      document.getElementsByClassName("twitter-timeline-link")[3].click();
      update();
    }
  }

  else if (tweet[4].match(shoeName) == shoeName && tweet[4].match(filterer) != filterer && tweet[4].match(filter2) != filter2) {
    if(checkon == "Tweets"){
      document.getElementsByClassName("twitter-timeline-link")[4].click();
      update();
    }
  }
  else if(checkon == "Tweets") {
    location.reload();
  }
}
setTimeout("linkSnipe()", 250);    
 }

2 个答案:

答案 0 :(得分:1)

选中该复选框后,将该功能重新定义为:

<input type=checkbox ..... onchange="doit()">

function doit() {
  window.linkSnipe=function() {}
}

我也用过这个:

function doit() {
  window['linkSnipe']=function() {}
}

如果您想通过复选框打开和关闭此功能:

<input type=checkbox ..... onchange="doit(this)">

var linkSnipeSave = linkSnipe;

function doit(ck) {
  if (ck.checked)
    window['linkSnipe']=linkSnipeSave 
  else {
    linkSnipeSave = linkSnipe;          //not sure if this line is needed...pls test
    window['linkSnipe']=function() {}
  }
}

答案 1 :(得分:0)

您可以简单地使用一个布尔变量,该变量随复选框的状态而变化。然后,您可以在函数调用周围放置一个if语句,只有在选中复选框时才会触发。

http://jsfiddle.net/W5P8X/

//initialize some variables.
bike_checked = false;
car_checked = false;

//get elements by their ID from html
bike = document.getElementById("bike");
car = document.getElementById("car");

//add event listeners to the html elements we found above
bike.addEventListener("click", toggle_bike, false);
car.addEventListener("click", toggle_car, false);

//toggle bike_checked variable on click
function toggle_bike(){
    if(bike_checked == true)
        bike_checked = false;
    else
        bike_checked=true;
    current_state();
}

//toggle car_checked variable on click
function toggle_car(){
    if(car_checked == true)
        car_checked = false;
    else
        car_checked=true;

    current_state();
}

//output current state.
function current_state(){
    if(car_checked == true)
        alert('Car checked');

    if(bike_checked == true)
        alert('Bike checked');
}

我只回答了javascript而没有使用jQuery,但你可以用jQuery使它更简洁。

我希望这会有所帮助。