Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 新元素函数的问题_Javascript_Jquery - Fatal编程技术网

Javascript 新元素函数的问题

Javascript 新元素函数的问题,javascript,jquery,Javascript,Jquery,我在我的一个项目中有投票功能。请参阅下面的代码 $(function () { $(".vote").click(function () { var id = $(this).data("id"); var name = $(this).data("name"); var dataString = 'id=' + id; //var dataId = id; var parent = $(this);

我在我的一个项目中有投票功能。请参阅下面的代码

 $(function () {
    $(".vote").click(function () {
        var id = $(this).data("id");
        var name = $(this).data("name");
        var dataString = 'id=' + id;
        //var dataId = id;
        var parent = $(this);

        if (name == 'up') {
            $(this).fadeIn(200).html;
            $.ajax({
                type: "POST",
                url: "vote_up.php",
                data: dataString,
                cache: false,

                success: function (html) {
                    parent.parent().find(".display-vote").html(html);
                }
            });
        } else {
            $(this).fadeIn(200).html;
            $.ajax({
                type: "POST",
                url: "vote_down.php",
                data: dataString,
                cache: false,

                success: function (html) {
                    parent.parent().find(".display-vote").html(html);
                }
            });
        }
        return false;
    });
});
我正在使用
jqueryinfinite scroll
加载其余的页面/帖子。我在主页面和第二页中使用了以下代码,我加载了其余的数据

    ('#left').infinitescroll({
    navSelector: '#page-nav', // selector for the paged navigation 
    nextSelector: '#page-nav a', // selector for the NEXT link (to page 2)
    itemSelector: '.post-box', //


}, function (newElements, data, url) {

    $(".vote").click(function () {
        var id = $(this).data("id");
        var name = $(this).data("name");
        var dataString = 'id=' + id;
        //var dataId = id;
        var parent = $(this);

        if (name == 'up') {
            $(this).fadeIn(200).html;
            $.ajax({
                type: "POST",
                url: "vote_up.php",
                data: dataString,
                cache: false,

                success: function (html) {
                    parent.parent().find(".display-vote").html(html);
                }
            });
        } else {
            $(this).fadeIn(200).html;
            $.ajax({
                type: "POST",
                url: "vote_down.php",
                data: dataString,
                cache: false,

                success: function (html) {
                    parent.parent().find(".display-vote").html(html);
                }
            });
        }
        return false;
    });


});

问题发生在第二次、第三次或任何其他页面加载之后,投票功能将触发两次。如何解决此问题。任何帮助都将不胜感激。

再次绑定之前,您需要解除单击事件的绑定

[……]

[……]

[……]

[……]


根据您使用的jQuery版本而定。

如果您解除单击事件的绑定,然后将其绑定,则可能会发生这种情况

function(newElements, data, url){    
$(".vote").unbind( "click" ); 
$(".vote").click(function() {

我正在使用jquery1.8.1。您能告诉我应该在哪个位置解除绑定click函数吗?函数(新元素、数据、url){$(“.vote”).off(“click”).click(函数(){var id=$(this.data(“id”);
$(".vote").off('click').click(function()
function(newElements, data, url){    
$(".vote").unbind( "click" ); 
$(".vote").click(function() {