使用jquery live函数时,如何只提交点击事件(div)?
我正在尝试做什么。
点击输入,在mysql中搜索联系人。 单击联系人并将联系信息插入数据库。 这部作品 我遇到的问题是它将页面上的所有 while 循环插入到 msql 数据库,我需要一些帮助来解决这个问题。
搜索激活时加载的 PHP 代码:
这是一个 while 循环:
<?php
echo '
<div id="'.$get_memID.'" class="box_content">
<table width="100%">
<tr>
<td width="50%" align="left"> '.$profile_pic_lil.' <span style="font-size: 14px; font-weight: bold; color: #060; ">'.$get_memfirstName.' '.$get_memlastName.'</span></td>
<td width="40%"align="right" valign="top">
<span style="font-size: 12px; color: #999999;">'.$linkUP_As.'</span>
<input name="to_mem" type="hidden" id="to_mem" value="'.$get_mem.'" />
<input name="to_memID" id="to_memID" type="hidden" value="'.$get_memID.'" />
<input name="to_memfirstName" id="to_memfirstName" type="hidden" value="'.$get_memfirstName.'" />
<input name="to_memlastName" type="hidden" value="'.$get_memlastName.'" />
</td>
</tr>
</table>
</div>
';
?>
加载搜索的 Jquery 脚本:
$(document).ready(function(){
var timer;
$(".search").live('keyup',function(e){
clearTimeout(timer);
var ms = 200; // milliseconds
var val = this.value;
timer = setTimeout(function() {
lookup(val);
}, ms);
var dataString = 'mysearchString='+ val;
if(val==''){
} else {
$.ajax({
type: "POST",
url: "/happening_searchlinkUP.php",
data: dataString,
cache: false,
success: function(html){
$("#display<?php echo $id; ?>").html(html).show();
}
});
}
return false;
});
});
将 php 文件发送到 mysql 的 Jquery 脚本:
$(document).ready(function(){
$(".box_content").live('click',function(e){
var element = $(this);
var id = element.attr("id");
var mem_email = $("#to_mem").val();
var mem_firstName = $("#to_memfirstName").val();
var happening_id = $("#happening_id<?php echo $id; ?>").val();
var info = "id=" + id + '&mem_email=' + mem_email + '&mem_firstName=' + mem_firstName + '&happening_id=' + happening_id;
$.ajax({
type: "POST",
url: "/happening_getMem_linkUP.php",
data: info,
cache: false,
success: function(html){
$("#now_from_linkup<?php echo $id; ?>").html(mem_firstName);
}
});
return false;
});
});
我们很乐意接受任何帮助,并提前致谢
最佳答案
您必须消除 ajax 调用的抖动,最简单的方法是执行 doOnce
var doOnce = 1;
$(document).ready(function(){
$(".box_content").live('click',function(e){
var element = $(this);
var id = element.attr("id");
var mem_email = $("#to_mem").val();
var mem_firstName = $("#to_memfirstName").val();
var happening_id = $("#happening_id<?php echo $id; ?>").val();
var info = "id=" + id + '&mem_email=' + mem_email + '&mem_firstName=' + mem_firstName + '&happening_id=' + happening_id;
if(doOnce){
doOnce--;
$.ajax({
type: "POST",
url: "/happening_getMem_linkUP.php",
data: info,
cache: false,
success: function(html){
$("#now_from_linkup<?php echo $id; ?>").html(mem_firstName);
doOnce++;
}
});
}
return false;
});
});
doOnce
开始为 true,因此将调用 ajax,并且 doOnce
将变为 false 以禁用 ajax 调用,然后当 ajax 返回成功时,doOnce
将被设置回 true 以允许其再次运行。
关于php - 使用jquery live函数时,如何只提交点击事件(div)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9487849/