0

すでに使用していたローオーバー JavaScript を使用して、jqtransform のラジオ ボタンを「チェック済み」に切り替えようとしています。

jqtransform を使用しない行オーバー効果のスクリプトは次のとおりです。

function selectRowEffect(object, buttonSelect) {
  if (!selected) { 
    if (document.getElementById) {
      selected = document.getElementById('defaultSelected');
    } else {
      selected = document.all['defaultSelected'];
    }
  }

  if (selected) selected.className = 'moduleRow';
  object.className = 'moduleRowSelected';
  selected = object;



// one button is not an array
  if (document.checkout_address.shipping[0]) {
    document.checkout_address.shipping[buttonSelect].checked=true;
  } else {
    document.checkout_address.shipping.checked=true;
  }
}

function rowOverEffect(object) {
  if (object.className == 'moduleRow') object.className = 'moduleRowOver';
}

function rowOutEffect(object) {
  if (object.className == 'moduleRowOver') object.className = 'moduleRow';
}
//--></script>

現在、行をクリックすると、実際にはフォームのラジオ ボタンが選択されますが、jqtransform はそれを反映していないため、クリックされていないように見えます。のようなものを追加してみました

jqTransformRadio.addClass("jqTransformChecked"); 

私の JavaScript の知識はかなり限られています。どんな助けでも大歓迎です。

4

1 に答える 1

0

selectRowEffect() 関数を次のように変更できると思います。

function selectRowEffect(object, buttonSelect) {
    if (!selected) { 
        if (document.getElementById) {
            selected = document.getElementById('defaultSelected');
        } else {
            selected = document.all['defaultSelected'];
        } 
    }

    if (selected) selected.className = 'moduleRow';
    object.className = 'moduleRowSelected';
    selected = object;

    // Get checkbox element inside the row, then trigger the 'click' event.
    $('.jqTransformRadio', object).trigger('click');
}

まだコードをテストしていませんが、うまくいくと思います

于 2011-03-14T18:15:38.797 に答える