0

Reader.php の foreach で生成されるいくつかのテーブルがあります。

<table class="object_list_<?php echo $title; ?>">

同じファイルには、jquery 呼び出しのリンクがあります。

<a href="#" onclick="show_object('<?php echo $itemId.','.$title; ?>')"><?php echo (string)$flat.'</a><br />'; ?>

ハンドラ ファイル catalogue.php の jQuery 関数は次のようになります。

<script>
    function show_object(itemid,object_type){
        var request = $.ajax({
            url: "show_object.php",
            type: "GET",
            data: "id="+ itemid,
            dataType: "html"
        });
        $(table['.object_list_' + object_type]).hide();
        request.done(function(msg) {
            $(".show_object").append(msg);          
        });
        request.fail(function(jqXHR, textStatus) {
            alert( "Request failed: " + textStatus );
        });
    }       
</script>

問題は hide() 関数にあります

$(table['.object_list_' + object_type]).hide();

これは動作しません。object_typeは他のファイルと同じであることに注意してください$title。a href javascript 呼び出しを介して渡しています。

ここでstackoverflowとgoogleで検索していますが、エラーが見つかりません。show_object.php を正しくロードしますが、テーブルは隠しません。

次のような他のバージョンもいくつか試しました。

$('.object_list_' + object_type).hide();

最初に変数にデータを追加し、次に非表示関数にデータを追加します..どれも機能しません

4

3 に答える 3

0

インラインの onclick の代わりに、テーブルのクラスを使用してフックしようとしましたか?

jQuery を使用して、テーブルから必要な情報を引き出すことができます。これは大まかな概要です。うまくいけば、これは役に立ちますか? この場合、必要なものの id を a の data-id="" 属性に入れて、いじる手間を省きます。

$('table.class a').click(function(e){

    /* Stop normal a click action by preventing default */
    e.preventDefault();

    /* Get the item id and define a $this to use later */
    var itemId = $(this).attr('data-id'), $this = $(this);

    /* Use nicer $.get syntax, pass the id */
    $.get('show_object.php',{
        id:itemId
    },function(data){

        /* Put your data in the target */
        $('target').append(data);

        /* Use the $this item to hide the a you clicked on */
        $this.hide();
    }
});

必要に応じて、より具体的なことを試すことができますか?

于 2013-04-16T08:40:54.157 に答える
0
$(table['.object_list_' + object_type]).hide();

は正しくありません。2 番目のステートメントを使用する必要があります。

$('.object_list_' + object_type).hide();

またはさらに良い

$('table.object_list_' + object_type).hide();

「hide」呼び出しの直前に「object_type」を警告し、firebug/chrome コンソールを介して手動で実行しようとすると、エラーが発生したと思います。

どうしたの ?

于 2013-04-16T08:22:50.800 に答える