2

で書かれた関数があり、javascriptそれを書き直したいのですが、jQueryこれは関数コードです:

function onclickRbtn(controlID , Message)
     {
         var s = document.getElementById(controlID);
         var sVal = event.srcElement.value;
         for (var i = 0; i < s.rows.length; i++)
          {
             if (s.getElementsByTagName("input")[i].value == sVal)
                 s.getElementsByTagName("label")[i].innerText = Message;
         }
         s.disabled = 'disabled';
    }

このコード:event.srcElement.value`とは何ですか?jQueryで同等のものは何ですか?

ありがとう

4

4 に答える 4

4

event.targetを使用できます

どの要素がイベントのターゲットであるかを見つけるために使用できます

* http://www.quirksmode.org/js/events_properties.html#target *

于 2012-04-23T11:15:17.307 に答える
3

あなたはこれを意味します:

$("button").click(function(){
    var value = $(this).val();
});
于 2012-04-23T11:17:01.147 に答える
3

JavaScriptコードを使用している場合は、jQueryで書き直さないでください。これは、「このハンマーは釘を壁に押し込むことができますが、代わりにハンマーを使用したい」と言っているようなものです。

eventそれはさておき、お持ちのコードはIE 8以下専用ですが、特定の用語(グローバルオブジェクトなどsrcElement)を使用しているため、IE9やその他のブラウザーでは機能しません。

使用する必要のあるコードは次のとおりです。

function onclickRbtn(controlID,Message,evt) {
    evt = evt || window.event;
    var s = document.getElementById(controlID),
        sVal = (evt.srcElement || evt.target).value,
        inputs = s.getElementsByTagName('input'),
        labels = s.getElementsByTagName('label');

    for( var i=0; i<s.rows.length; i++) {
        if( inputs[i].value == sVal) labels[i].innerText = labels[i].textContent = Message;
    }
    s.disabled = true;
}

また、イベントを添付する場合は常に、引数にイベントを追加してください。例:

<element onclick="onclickRbtn(controlID, Message, event);">
elem.onclick = function(e) {onclickRbtn(controlID, Message, e);};
于 2012-04-23T11:20:17.240 に答える
2

これは、IE9、IE 8、IE7、Chrome 22、Safari5.7.1で機能します。FF14では動作しません:

$(event.srcElement || event.target);
于 2012-10-10T11:08:57.743 に答える