0

次のようなjavascript関数2パラメータを送信しようとしています:

var par1;
var par2;

$('#somediv').append('<div onclick="somefunction('+par1+','+par2+');"></div>');

私はこのような多くの div を動的に作成しています。後で操作するために par1 と par2 を渡す正しい方法を見つける必要があります。

現在、par1 のみが問題なく、par2 は未定義です (どちらも文字列値を持っています)。

助言がありますか?

4

5 に答える 5

2

var1andvar2をデフォルト値で初期化します。

于 2012-04-24T19:08:48.760 に答える
2

このような手の込んだことを行う正しい方法は、、、、または jQuery を使用する.liveこと.delegateです.on

var par1; // assuming these get values at some point
var par2; // assuming these get values at some point
$('#somediv').append('<div class='fancyDiv'></div>');
$('#somediv').on("click", ".fancyDiv", function() {
   someFunction(par1, par2);
}))

// use delegate instead of on if you're in jQuery 1.6 or lower
$('#somediv').delegate(".fancyDiv", "click", function() {
   someFunction(par1, par2);
}))
于 2012-04-24T19:09:59.863 に答える
2

これは、コードで par1 と par2 が定義されていないためです。

于 2012-04-24T19:06:02.063 に答える
1

jQueryを使用するonclick

var par1 = 'par1';
var par2 = 'par2';

$('<div>Click</div>').appendTo('#somediv').click(function(){
    somefunction(par1, par2)
})

function somefunction(v1, v2){
    alert(v1+" "+v2);
} 
​

実際に見てくださいhttp://jsfiddle.net/anuraguniyal/gjz72

ただし、par1 と par2 を取得する場所によって異なります。それらが div に関連しており、div ごとに異なる必要がある場合は、それらをデータ属性として html に追加する必要があります。

$('<div data-par1="par1" data-par2="par2" >Click</div>').appendTo('#somediv').click(somefunction)

function somefunction(){
    alert($(this).attr('data-par1')+" "+$(this).attr('data-par2'));
} 
​

実際に見てくださいhttp://jsfiddle.net/anuraguniyal/gjz72/14/

于 2012-04-24T19:25:56.537 に答える
0

perimeterBoxここで関数です

var perimeterBox = function(length,width)
{
    return length+length+width+width;
};

perimeterBox(5,5);
于 2014-05-19T12:04:16.400 に答える