jquery脚本仅在页面刷新时运行

时间:2014-10-20 22:50:28

标签: javascript jquery

我有一个带有以下代码的按钮

<button type="button" class="btn btn-success btn-xs vote up" id="76" name="up"><span class="glyphicon glyphicon-thumbs-up"></span> Bueno</button>

按钮不起作用,除非我重新加载页面,我不知道为什么。有任何想法吗? jquery代码位于正文的开头

jquery的

<script type="text/javascript">
$(function() {
$(".vote").click(function() 
{
var id = $(this).attr("id");
var name = $(this).attr("name");
var dataString = 'id='+ id ;
var parent = $(this);
var _this = this;
if(name=='up')
{
$(this).fadeIn(600).html('<span class="glyphicon glyphicon-ok"></span>');
$.ajax({
   type: "POST",
   url: "up_vote.php",
   data: dataString,
   cache: false,

   success: function(html)
   {
    parent.html(html);
            $( _this ).remove();
            $( ".escondido" ).css( "display", "block" );
  }  });
return false;
    });
});
</script>

3 个答案:

答案 0 :(得分:1)

如果jQuery代码位于代码的开头(在HTML之前),则表示尚未创建DOM。尝试将jQuery代码移动到正文的底部(在HTML之后)。

答案 1 :(得分:0)

我会假设您在按钮点击事件中遇到错误。您是否尝试过使用直播(&#39;点击&#39;)?你能用JSFIDDLE证明这个问题吗?

答案 2 :(得分:0)

在我创建的jsFiddle中,我看到了语法错误 - Original Code

如果我将代码更改为Edited jsFiddle

$(function () {
    $(".vote").click(function () {
        var id = $(this).attr("id");
        var name = $(this).attr("name");
        var dataString = 'id=' + id;
        var parent = $(this);
        var _this = this;
        if (name == 'up') {
            $(this).fadeIn(600).html('<span class="glyphicon glyphicon-ok"></span>');
            $.ajax({
                type: "POST",
                url: "up_vote.php",
                data: dataString,
                cache: false,

                success: function (html) {
                    parent.html(html);
                    $(_this).remove();
                    $(".escondido").css("display", "block");
                }
            });
            return false;
        }; // Removed ) from this line
    });
}); // Added this whole line