0

我对 Jquery 很陌生,需要帮助来尝试在同一页面上运行一些事件。我有两个事件部分,一个是 .get 将数据传递到文件然后显示检索到的数据,这发生在页面加载时。第二部分是关于单击按钮时发送和接收数据的单击事件。

这些事件都可以根据需要工作,但是如果我将两个部分都放在一个页面上,则单击事件将不起作用。下面是我拥有的代码,我希望有人知道如何让它们全部工作?谢谢

<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 回答