0

私はjavascriptの別の問題で立ち往生しています、
私のコードは2つの部分で構成されています

まず、簡単なドロップダウンメニュー:

<select>
    <option name="1">1</option>
    <option name="2">2</option>
    <option name="3">3</option>
</select>

単純なdivを2番目に:

<div onClick="doThis('1');">Execute 1</div>

私のスクリプトは現在innerHTML、特定のオプションが選択されたときにdivのを変更しますが、onClick関数の値を変更するためにも必要になります。

つまり、オプション3を選択した場合、JavaScriptはonClick = "doThis( '3');になります。

ほとんどの属性をjavascriptで変更する方法は知っていますが、javascriptonClick属性を別のjavascript関数で変更する方法がわかりません。私はそれをグーグルで検索しましたが、nothinkが出てきました。

では、これはどのように行うことができますか?

すべての助けに
感謝します、すでにありがとう。

4

3 に答える 3

2

インラインJavaScriptイベントを使用しないでください。関数型コード(javascript)とアンチパターンであるプレゼンテーションコード(HTML)を混合しています。これらの懸念を適切に分離すると、答えはやや些細なものになります。

HTML:

<select id="someSelect">
    <option name="1">1</option>
    <option name="2">2</option>
    <option name="3">3</option>
</select>

<div id="someDiv">Execute</div>

JavaScript:

document.getElementById('someDiv').onclick = function () {
    var select = document.getElementById('someSelect');
    var number = select.value;

    doThis(number);
};

http://jsfiddle.net/jbabey/HzVd7/

于 2012-09-11T13:24:40.557 に答える
0

onClick属性の変更は、ほとんどのJavaScriptタスクで行う必要のあることではありません。代わりに、'3'シナリオ内のがいずれかの時点で変更されることがわかっている場合は、そもそも関数呼び出しにハードコーディングしないでください。変数にするか、関数でフェッチします。

<div id="someDiv" onclick="doThis(getValue());">
于 2012-09-11T13:25:51.550 に答える
0

jqueryライブラリhttp://docs.jquery.com/Downloading_jQueryを使用できます。次に、次の方法で送信時にイベントをハングアップします。

$('div').click(function(){
  doThis($("select#someSelect").val());
})
于 2012-09-11T13:30:47.560 に答える