2017-03-19 20 views
0
$(".first").click(function(){ 
    item = "hello"; 
    $(".second").toggle(300); 

    $(".second").click(function(){ 
     item = "goodbye"; 
    }); 

    $(this).html(item); 

}); 

私は現在、関数内に関数がネストされている上記のコードを使用しています。

ボタンsecondをユーザーがクリックは、変数itemの値がこんにちはから別れに変更する必要がある場合。この時点で、クリックされた元の.firstボタンの現在の値は、新しいitemの値に変更される必要があります。

コードの問題点は、ボタンをクリックする前にhtml(item)コード行が実行されることです。

2番目(ネストされた)関数の内部にその行のコードを追加しようとしましたが、$(this)部分のために機能しません。

どうすればこの問題を修正できますか?

+0

。 – dfsq

+0

@dfsqどうすればこの問題を解決できますか? –

+0

2番目のクリック機能を外部に移動できないのはなぜですか? HTMLのビットは、あなたが達成しようとしていることを理解するのにも役立ちます。 –

答えて

0

正解は前に誰かから投稿されましたが、何らかの理由で削除されました。

私はそれが以下のコードを介して動作するようになった:非同期対同期

$(".first").click(function(){ 
    var me = this; 
    item = "hello"; 
    $(".second").toggle(300); 

    $(".second").click(function(){ 
     item = "goodbye"; 
     $(me).html(item); 
    }); 

}); 
+0

正解ではなかった、それはかなり悪い答えでした。この解決方法は、動作しているように見えても使用しないでください(明白でない少なくとも2つの問題があります)。質問にコメントしたデモを確認してください。別のイベントハンドラを使用し、他のイベントの内部ではイベントをバインドしないでください。そして 'var'を忘れないでください。 – dfsq

+0

@dfsq解決策を提供してくれてありがとう!しかし、これは '.second'ボタンをクリックすると' $(this) 'を使用しません –

関連する問題