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 に答える