Delay without delay help

I have tried that liked this

else  if (button1.read() == HIGH && button2.read() == HIGH && button3.read() == LOW){
     xport.PCF8574_SetPin(0, 0);
     xport.PCF8574_SetPin(1, 0);
     contactor1.on();
     xport.PCF8574_SetPin(2, 1);
     contactor3.off();
     if ((millis() - onetimer) >= oneinterval){
      contactor2.on();
      onetimer = millis();
     }
  }

However, it only works one time and I have to hold the button down. The idea of the button is to be a set button that wouldn't have to be held down to get everything on.