3

我试图让背景按钮颜色从石灰绿变回原来的颜色。目前我已经获得了一种方法来实现这一点,但似乎必须有一种更有效的方法来做到这一点。

function doGet(e) {
  var app = UiApp.createApplication();

  var productInfoButton = app.createButton("Products").setId('productInfoButton');

  var handlerL = app.createServerClickHandler('prodCompleteHandlerL');
  var productCompleteCheckBox = app.createCheckBox().setId("productCompleteCheckBox")
  .setName("productCompleteCheckBox");
  productCompleteCheckBox.addClickHandler(handlerL);
  handlerL.addCallbackElement(productInfoButton);

  app.add(productInfoButton);
  app.add(productCompleteCheckBox);

  return app;
}

function prodCompleteHandlerL(e) {
  var app = UiApp.getActiveApplication();
if(e.parameter.productCompleteCheckBox == 'true'){
  app.getElementById('productInfoButton').setStyleAttribute('background', 'lime')
}else{
  app.getElementById('productInfoButton').setStyleAttribute('background', 'url("https://dl.dropbox.com/u/211279/hborder.png") repeat-x 0px -27px')
}
  return app;
}
4

1 回答 1

0

更改类而不是直接更改背景选项是更可靠的方法。

在处理程序函数中使用背景参数切换 css 类。

function clickHandler (e) {
    e.target.className = 'lime';
}

function prodCompleteHandler (e) {    
    e.target.className = 'standart'
}

这是代码示例:http: //jsfiddle.net/Ysaxv/

于 2013-02-17T14:05:02.733 回答