0

2つの状況で要素を非表示にするためにjQueryhide()関数を使用しています。1つは通常の状況であり、そこで機能しています。もう1つの状況は、要素を含むパーツがAJAXを介してロードされることです。コンテンツが読み込まれるページにスクリプトを記述しました。ただし、この場合、関数は機能していません。で関数を指定しましたonclick。クリックがトリガーされますが、要素は非表示ではありません。クリックがトリガーされるので、使う必要はないと思いますlive()

私の要素コードは次のとおりです:

<input type="button" onclick="addMoreElements(this.id);" value="Add" id="406" class="button">

そして、addMoreElements関数で私は持っています

function addMoreElements(currentElement){
        $('#406').hide();
}
4

3 に答える 3

1

this.id を JavaScript 関数に渡し、明示的に $("#406") を使用していることがわかった場合。代わりにこれを試すことができます

function addMoreElements(currentelement){
    $("#"+currentelement).hide();
}

お役に立てれば。

于 2012-12-13T08:13:24.557 に答える
0

これを試して:

HTML

<input type="button" value="Add" id="406" class="button" />​

jQuery

$('#406').on('click', function() {
    $(this).hide();
})​
于 2012-12-13T08:08:01.823 に答える
0

私はあなたのコードを試しました、html要素の前にあなたのjavascriptを定義してみてください。それはそれをする必要があります。

サンプルコード:

 <script type="text/javascript">

    function addMoreElements(){
          $("#406").hide();     
    }
</script>

<input type="button" onclick="addMoreElements();" value="Add" id="406" class="button" />

この背後にある理由は、ブラウザがイベントハンドラ属性が設定されている要素を確認すると、ブラウザはすぐに関数ポインタをチェックします。関数がまだ定義されていない場合は、関数が定義された後でも、イベントは正しく処理されません。したがって、属性イベントハンドラーを使用する場合は、使用するすべての関数がヘッドタグで定義されているか、ヘッドタグに含まれていることを確認してください。

または、次のように、ページの読み込み後にjqueryのイベントバインダーを使用します。

$(document).ready(function(){
   $(".element").click(function(){
      //do something with the element by using $(this)
    });

});

于 2012-12-13T08:09:47.763 に答える