Javascript 单击标记时传递jquery参数
我想通过$发送。当我点击标签时,发布一个参数,但当这种情况发生时,参数不会被发送。我不知道为什么会这样。我已经看了好几篇有这些功能的文章,但都没有解决我的问题。代码如下: 有什么想法吗 脚本Javascript 单击标记时传递jquery参数,javascript,php,jquery,Javascript,Php,Jquery,我想通过$发送。当我点击标签时,发布一个参数,但当这种情况发生时,参数不会被发送。我不知道为什么会这样。我已经看了好几篇有这些功能的文章,但都没有解决我的问题。代码如下: 有什么想法吗 脚本 <script type="text/javascript"> $(document).ready(function() { $( ".enlace_submenu" ).click(function( event ) {
<script type="text/javascript">
$(document).ready(function() {
$( ".enlace_submenu" ).click(function( event ) {
var id = $(this).attr('id');
$.post("submenu.php", { name: id} );
});
});
</script>
$(文档).ready(函数(){
$(“.enlace_子菜单”)。单击(函数(事件){
var id=$(this.attr('id');
$.post(“submenu.php”,{name:id});
});
});
标签
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>";
echo“”;
submenu.php
$nombre = $_POST['name'];
echo "<p>".$nombre."</p>";
$nombre=$\u POST['name'];
回声“”$nombre.”;
您可以使用$.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)
}
});
});
});
$(文档).ready(函数(){
$(“.enlace_子菜单”)。单击(函数(事件){
var id=$(this.attr('id');
$.ajax({
url:“submenu.php”,
类型:“POST”,
数据类型:“HTML”,
async:false,
数据:{name:id}
成功:功能(数据){
警报(数据)
}
});
});
});
当您单击某个链接时,它将导航到别处,因此不会进行Ajax调用。如果取消单击,Ajax调用将到达服务器
$( ".enlace_submenu" ).click(function( event ) {
var link = this;
event.preventDefault();
$.post("submenu.php", { name: id} ).done(function(){
window.location.href = link.href;
});
});
使用以下代码
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>";
echo“”;
如果我理解您的意图,您需要单击链接做两件事,发送ajax帖子,并导航到href
中的url
以下是您如何做到这一点:
JS
加价
<a href="submenu.php?id_control=36" class="do-post enlace_submenu" ...
我可以在您的“a”标记中看到一个错误,它应该是:
echo“”代码>看不出为什么这不起作用。代码中是否有其他与您不共享的部分相关?另外,尝试在处理程序中添加event.preventDefault()
。其他jQuery是否正常工作?如果不是,也许jqueryinclude不起作用。否则,您能告诉我们您是否在浏览器控制台中看到任何错误吗?@D4V1D我想没有。我现在和以前都试过,但是当我点击标签时,它不会重定向到另一个页面。@sunny控制台上没有错误。@Rubén:Ajax调用不会重定向,所以这是完全正常的。您是否已在控制台中检查请求的返回?能否详细说明“以更好的方式”?如何$.ajax()
优于$.post()代码>?特别是当文档声明“这是一个速记Ajax函数”时。阅读此链接的第二段,您甚至可以参考此,$,Ajax()当然有助于同步,但对于OP需求,无需使用$.Ajax()代码>超过$.post()代码>(OP没有尝试执行同步调用或获取JSON数据)。这不起作用。当我点击标签时,它不会重定向到另一个页面。当我点击标签时,它不会重定向到另一个页面。你有一个竞争条件。为什么一次点击就可以发布和导航。您需要等待帖子,而不是导航。是的,现在会发生这种情况,但我在$post之前继续收到重定向。如果使用window.location.href=link.href;我重新加载页面,因此我丢失了值?如果我看到请求返回,它会正确显示,但不会显示在页面中。为什么这是可能的?你说你需要使用链接导航,这就是我添加它的原因。如果想要返回的内容,为什么要调用Ajax?只需发布一个表单、导航或使用Ajax调用替换内容。
<a href="submenu.php?id_control=36" class="do-post enlace_submenu" ...