0

私はJqueryにまったく慣れていないので、同じページでいくつかのイベントを実行するためのサポートが必要です。イベントには2つのセクションがあります。1つはデータをファイルに渡し、取得したデータを表示する.getです。これは、ページの読み込み時に発生します。2番目のセクションは、ボタンがクリックされたときにデータを送受信するクリックイベントについてです。

これらのイベントはすべて必要に応じて機能しますが、1つのページに両方のセクションがある場合、クリック時のイベントは機能しません。以下は私が持っているコードです、そして誰かがそれらすべてを機能させる方法を知っていることを願っていますか?ありがとう

<script type="text/javascript"> 
    $.get("/layout/standard/check.php", { url: "domain"}, function(data){
        $("#content-area").html(data)
    });

    $(".discuss").click( function() {
        $.post('/layout/standard/report-action.php', {form: "discuss"},function(data){
        $(".message").html(data);
        $(".message").show("slow");
    });
    });
    $(".request").click( function() {
        $.post('/layout/standard/report-action.php', {form: "request"},function(data){
        $(".message").html(data);
        $(".message").show("slow");
    });
    });
    $(".report").click( function() {
        $.post('/layout/standard/report-action.php', {form: "report"},function(data){
        $(".message").html(data);
        $(".message").show("slow");
    });
    });
</script>

なぜそれが機能しないのかを見つけたと思います。onclickリンクはgetイベントによってページに配置されます。ボタンがすでにページ上にある場合は機能しているように見えますが、このように挿入されている場合は機能しません。

ボタンはまだ問題なくリンクとして機能しているので、これは私には意味がありません...

4

2 に答える 2

1

委任を試してください..そしてあなたのコードをdocument.ready関数の中に入れてください

$(function() {
    $.get("/layout/standard/check.php", {
        url: "domain"
    }, function(data) {
        $("#content-area").html(data)
    });

    $("body").on('click','.discuss,.request,.report',function() {
        $.post('/layout/standard/report-action.php', {
            form: $(this).attr('class') //this is assuming you only have 1 class per element
        }, function(data) {
            $(".message").html(data);
            $(".message").show("slow");
        });
    });
});​
于 2012-09-26T14:45:48.333 に答える
0

イベントが動的に作成されたコンテンツに添付されている場合は、イベントを委任する必要がある場合があります。交換してみてください:

$(".discuss").click( function() {

と:

$('body').on('click', '.discuss', function() {

そして、すべてのイベントを続けます。'body'ドキュメントに常に存在する限り、セレクターを別のセレクターに置き換えることができます。

于 2012-09-26T14:31:41.113 に答える