1

クリックしたボタンの値で var x の値を設定しています。次に、jquery アニメーション コードの値として var x を使用します。

var x = $('input').click(function() {
    $(this).val();
});

$("li").click(function() {
    $(this)
        .stop()
        .animate(
            {height:'150px'},
            {queue:false, duration:600, easing: x }
        );
});

$("li").mouseout(function() {  
    $(this)
        .stop()
        .animate(
            {height:'50px'},
            {queue:false, duration:600, easing: x });
});​

私は何を間違っていますか?デモ: http://jsfiddle.net/EnigmaMaster/z9dXA/7/

4

3 に答える 3

4

デモ jsFiddle

var x = '';    // define your var (make it re-usable inside functions)

$('input').click(function() {
   x = $(this).val();   // set your var'x' value for use.
});

$("li").click(function() {   
    $(this).stop().animate({height:150},{queue:false, duration:600, easing: x });
});
    
$("li").mouseout(function(){  
    $(this).stop().animate({height:50},{queue:false, duration:600, easing: x });
});
于 2012-05-20T21:33:32.643 に答える
2

クリックは非同期です。次のようにします。

var x;
$('input').click(function() {
    x = $(this).val();
});

フィドルを参照してください: http://jsfiddle.net/z9dXA/8/

ちなみに、これは、入力がliの前にクリックされた場合にのみ機能します。そうでない場合、xには値がありません。おそらく、次のようなデフォルト値を提供します。

var x = 'swing';
$('input').click(function() {
    x = $(this).val();
});
于 2012-05-20T21:32:47.130 に答える
1

x現在、によって返されるjQueryオブジェクトと同じように設定しています$("input")。このメソッドは、後で.click()(クリックが発生したときに)呼び出されるクリックハンドラーを設定するため、クリック時に値を返しません。同じjQueryオブジェクトを返すため、複数のjQueryメソッドをチェーンできます。 。それがあなたが見せていた理由です。$("input")alert(y)[object Object]

その最初のビットをこれに変更してみてください:

var x = "linear";  // give x a default value

$('input').click(function() {
    x = $(this).val();  // store the type of easing to be used
});

その場合、実際にはy変数は必要ありませんx。直接使用できます。

$("li").click(function() {
    $(this).stop().animate({ height: '150px' }, {
        queue: false,
        duration: 600,
        easing: x
    });
});

$("li").mouseout(function() {
    $(this).stop().animate({ height: '50px'}, {
        queue: false,
        duration: 600,
        easing: x
    });
});​

更新されたデモ:http://jsfiddle.net/z9dXA/9/

于 2012-05-20T21:36:15.090 に答える