0

所以,我有点问题。我有一些链接,当它们被单击时,它们会在 jQuery 中运行一个函数,但是,当我第一次单击该链接时,什么也没有发生。如果我再次单击它,该功能会运行两次,如果我第三次单击它,它会在该次点击后运行三次。

这是我的 jQuery 代码

function updateEntryStatus() {
    var anime_id = <?php echo $anime_id; ?>;
    var anime_list_entry_id = <?php echo $anime_list_entry_id; ?>;

        jQuery('.wantedStatus').on('click', function(event)
        {
                    var wantedStatus = jQuery(this).text();

                jQuery.post("/wp-content/themes/sahifa/phanime_list/updateStatus_animelist.php", {firstParam : anime_id, secondParam : anime_list_entry_id, thirdParam : wantedStatus}, function(data) {
                //this is your response data from serv
                console.log(data);
                                jQuery('#anime_list_update').html(data);

            });
            return false;
        });
    }

这是我的几个链接

<a href="javascript:void(0);" onclick="updateEntryStatus();" class="wantedStatus">Watching</a> | 

<a href="javascript:void(0);" onclick="updateEntryStatus();" class="wantedStatus">Plan to watch</a> | 

<a href="javascript:void(0);" onclick="updateEntryStatus();" class="wantedStatus">On hold</a> | 

<a href="javascript:void(0);" onclick="updateEntryStatus();" class="wantedStatus">Dropped</a>

例子:

点击1:没有任何反应

点击 2:函数运行两次。

点击3:函数运行3次/共运行5次。

点击 4:函数运行 4 次/总共运行 9 次等等...

我假设这是我在我的函数中设置点击的方式。

4

2 回答 2

1

简单拿这个

                    jQuery('.wantedStatus').on('click', function(event)
                    {
                        var wantedStatus = jQuery(this).text();

                            jQuery.post("/wp-content/themes/sahifa/phanime_list/updateStatus_animelist.php", {firstParam : anime_id, secondParam : anime_list_entry_id, thirdParam : wantedStatus}, function(data) {
                                //this is your response data from serv
                            console.log(data);
                            jQuery('#anime_list_update').html(data);

                        });
                            return false;
                    });
                }

您的 updateEntryStatus() 函数的一部分。

于 2013-08-15T16:31:10.027 回答
1

onclick在有人单击链接之前,您不会设置事件。每次他们单击链接时,您都会设置另一个事件处理程序。

jQuery('.wantedStatus').on('click', function(event)调用移到updateEntryStatus()函数之外,并确保.on()在有人单击链接之前调用该函数。

于 2013-08-15T16:31:38.160 回答