Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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 用于单个div的jquery函数_Javascript_Jquery_Function_Vote - Fatal编程技术网

Javascript 用于单个div的jquery函数

Javascript 用于单个div的jquery函数,javascript,jquery,function,vote,Javascript,Jquery,Function,Vote,我认为这可以通过.prev()函数实现,但由于某些原因,它不起作用 我正在为博客上的帖子创建竖起/向下按钮。我试图根据用户的投票显示消息。无论是向上还是向下,只要我投票给一个特定的帖子,所有帖子都会显示消息 这是我的密码。我删除了prev()以使其更具可读性。该脚本在ajax方面运行良好 $(document).ready(function() { $(".vote_button").click(function(e) { //the UP or DOWN vote button

我认为这可以通过
.prev()
函数实现,但由于某些原因,它不起作用

我正在为博客上的帖子创建竖起/向下按钮。我试图根据用户的投票显示消息。无论是向上还是向下,只要我投票给一个特定的帖子,所有帖子都会显示消息

这是我的密码。我删除了prev()以使其更具可读性。该脚本在ajax方面运行良好

$(document).ready(function() {
    $(".vote_button").click(function(e) { //the UP or DOWN vote button
    var vote_status = $(this).attr('class').split(' ')[1]; //gets second class name following vote_button
    var vote_post_id = $(this).attr("id"); //the post ID
    var dataString = 'post_id=' + vote_post_id + '&vote_status=' + vote_status;

    $.ajax({
        type: "POST",
        url: "url/add_vote.php",
        data: dataString,
        cache: false,
        success: function(html) {
            if (vote_status == 1) 
         {
                $('.msg_box').fadeIn(200);
                $('.msg_box').text('You voted UP!');
            }
            if (vote_status == 2) 
         {
                $('.msg_box').fadeIn(200);
                $('.msg_box').text('You voted DOWN!');
            }
        }
    });
    return false;
});
});
示例HTML

<div class="vote_button 1" id="18">UP</div>
<div class="vote_button 2" id="77">DOWN</div>
<div class="msg_box"></div>

<div class="vote_button 1" id="43">UP</div>
<div class="vote_button 2" id="15">DOWN</div>
<div class="msg_box"></div>


<div class="vote_button 1" id="11">UP</div>
<div class="vote_button 2" id="78">DOWN</div>
<div class="msg_box"></div>
UP
向下
向上的
向下
向上的
向下
编辑:提供了没有Ajax部分的JSFIDLE

您需要保存对
单击处理程序中按钮的引用(例如,
var me=$(this);
),然后在AJAX处理程序中使用
me.nextAll('.msg\u box:first')

编辑::


您需要保存对
单击
处理程序内按钮的引用(例如,
var me=$(this);
),然后在AJAX处理程序内使用
me.nextAll('.msg\u box:first')

编辑::


您不应该将
id
属性设置为一个数字。他们不应该以数字开头,这是很好的信息。我会解决这个问题。你不应该把
class
id
属性仅仅作为一个数字。他们不应该以数字开头,这是很好的信息。我会修好的。那是非常好用的沙拉!非常感谢你!我一定会记住你未来脚本的代码。我也感谢国际单项体育联合会声明的修订。额外的问题:你把变量命名为“我”有什么特别的原因吗?@Cyber:No.
self
也很常见<代码>出于(希望如此)明显的原因,此
不是一个选项。Slaks效果非常好!非常感谢你!我一定会记住你未来脚本的代码。我也感谢国际单项体育联合会声明的修订。额外的问题:你把变量命名为“我”有什么特别的原因吗?@Cyber:No.
self
也很常见<代码>出于(希望如此)明显的原因,此
不是一个选项。
var me = $(this);   //The this will be different inside the AJAX callback

$.ajax({
    type: "POST",
    url: "url/add_vote.php",
    data: dataString,
    cache: false,
    success: function(html) {
        me.nextAll('.msg_box:first')
            .text(vote_status == 1 ? 'You voted UP!' : 'You voted DOWN!')
            .fadeIn(200);
    }
});