单击标签时传递jquery参数

时间:2015-09-11 14:33:36

标签: javascript php jquery

我想在点击标签时通过$ .post发送参数,但是当发生这种情况时,不会发送参数。我不知道它为什么会发生。我已经看过几个有这个功能的帖子,但没有解决我的问题。这是代码:

有什么想法吗?

脚本

<script type="text/javascript">
        $(document).ready(function() {
            $( ".enlace_submenu" ).click(function( event ) {
                var id = $(this).attr('id');

                $.post("submenu.php", { name: id} );
            });
        });
</script>

标记

echo"<li><a href='submenu.php?id_control=".$id_control."' class=enlace_submenu data-transition='slide' id='".$id_control."'><img src='iconos_ios_7/32/".$icono."' class='ui-li-icon'>".$nombre_control."</a></li>";

submenu.php

$nombre = $_POST['name'];
echo "<p>".$nombre."</p>";

5 个答案:

答案 0 :(得分:2)

您正在点击链接,它将离开,因此不会进行Ajax调用。如果取消单击,Ajax调用将到达服务器。

$( ".enlace_submenu" ).click(function( event ) {
    var link = this; 
    event.preventDefault(); 
    $.post("submenu.php", { name: id} ).done(function(){
        window.location.href = link.href;
    });
});

答案 1 :(得分:1)

我可以看到你的&#34; a&#34;标签,应该是:

&#13;
&#13;
echo"<li><a href='submenu.php?id_control=".$id_control."' class='enlace_submenu'  data-transition='slide' id='".$id_control."'><img src='iconos_ios_7/32/".$icono."' class='ui-li-icon'>".$nombre_control."</a></li>";
&#13;
&#13;
&#13; 注意&#39;在class属性中 您还需要在代码中放入e.preventDefault(),因为它是一个超链接,您想要取消默认行为。

如果这不起作用,请参阅控制台日志(Firebug)并写下你正在获得的确切错误。

希望它对你有所帮助。

答案 2 :(得分:0)

您可以使用$ .ajax(),其工作方式与$ .post相同,更好的方式,就像这样

<script type="text/javascript">
   $(document).ready(function() {
       $( ".enlace_submenu" ).click(function( event ) {
        var id = $(this).attr('id');

         $.ajax({
            url: "submenu.php",
            type: "POST",
            dataType: "HTML",
            async: false,
            data: {name: id}
            success: function(data) {
                  alert(data)                  
            }
        }); 
    });
});

答案 3 :(得分:0)

使用以下代码

echo"<li><a href='javascript:void(0);' class=enlace_submenu data-transition='slide' id='".$id_control."'><img src='iconos_ios_7/32/".$icono."' class='ui-li-icon'>".$nombre_control."</a></li>";

答案 4 :(得分:0)

如果我理解你的意图,你想要点击链接做两个的事情,发送一个ajax帖子导航到href中的网址

以下是如何做到这一点:

JS

$(".enlace_submenu").click(function() {
  var $this = $(this);
  if($this.hasClass("do-post")) {
    $this.removeClass("do-post");
    $.post("submenu.php", {name: this.id}, function(){
       $(".enlace_submenu").click();
    });
    return false;
  }
});

标记

<a href="submenu.php?id_control=36" class="do-post enlace_submenu" ... 

但是,如果您解释想要实现的目标,可能会有更简单的方法来获得结果。