Javascript jQuery函数无法使用.load()刷新div标记
我正在使用ajax post将我的值发送到(uploadsignupeditadvcheck.php)。提交成功后,我需要刷新我的div标签(galleryadv)以准备下次提交。我的ajax提交成功,但刷新后,我的jquery函数不再工作。我很感激你们能帮我解决这个问题。多谢各位 index.phpJavascript jQuery函数无法使用.load()刷新div标记,javascript,php,jquery,Javascript,Php,Jquery,我正在使用ajax post将我的值发送到(uploadsignupeditadvcheck.php)。提交成功后,我需要刷新我的div标签(galleryadv)以准备下次提交。我的ajax提交成功,但刷新后,我的jquery函数不再工作。我很感激你们能帮我解决这个问题。多谢各位 index.php <script> function uploadadv(){ var idadv = document.getElementById(&
<script>
function uploadadv(){
var idadv = document.getElementById("idadv").value;
var companynameadv = document.getElementById("companynameadv").value;
var usernameadv = document.getElementById("usernameadv").value;
var aboutmeadv = $("#aboutmedecsadv").val();
var catadv = document.getElementById("catadv").value;
var typeadv = document.getElementById("typeadv").value;
var keywordadv = document.getElementById("keywordadv").value;
var addressadv = document.getElementById("addressadv").value;
var countryadv = document.getElementById("countryadv").value;
var zipadv = document.getElementById("zipadv").value;
var stateadv = document.getElementById("stateadv").value;
var cityadv = document.getElementById("cityadv").value;
var urladv = document.getElementById("urladv").value;
var priceadv = document.getElementById("priceadv").value;
var advstamp = document.getElementById("advstamp").value;
var myData = 'idadv='+idadv+ '&companynameadv='+companynameadv+ '&usernameadv='+ usernameadv+ '&aboutmeadv='+aboutmeadv+ '&catadv='+catadv+ '&typeadv='+typeadv+ '&keywordadv='+ keywordadv+ '&addressadv='+ addressadv+ '&countryadv='+ countryadv+ '&zipadv='+ zipadv+ '&stateadv='+ stateadv+ '&cityadv='+ cityadv+ '&urladv='+ urladv+ '&priceadv='+ priceadv+ '&advstamp='+ advstamp;
jQuery.ajax({
type: "POST", // HTTP method POST or GET
url: "uploadsignupeditadvcheck.php", //Where to make Ajax calls
dataType:"text", // Data type, HTML, json etc.
data:myData, //Form variables
success:function(data){
$('#messageeditcheckadv').html(data);
},
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
});
};
</script>
<script>
var btn_edit = $(".avatar-galleryadv"),
btn_save = $(".avatar-previewgalleryadvsave");
btn_save.hide(0);
btn_edit.on("click", function() {
$(this).hide(0);
btn_save.fadeIn(300);
});
btn_save.on("click", function() {
$(this).hide(0);
btn_edit.fadeIn(300);
});
</script>
<script>
$( ".fa-map-marker" ).click(function() {
$( ".navtumbler" ).toggle( "fast" );
});
</script>
<div class="galleryadv">
<div class="avatar-galleryadv">
<div class="avatar-editgalleryadv">
<input type='file' id="uploadFileadv" accept=".png, .jpg, .jpeg" />
<label for="imageadv"></label>
</div>
<div class="avatar-previewgalleryadv">
<div id="imagePreviewgalleryadv" style="background-image: url(images/whitecamera.png); background-color:#181818; background-size:contain; background-repeat:no-repeat;">
</div>
</div>
</div>
<div class="avatar-previewgalleryadvsave">
<i class="fa fa-floppy-o" aria-hidden="true" id="uploadimageadv" style="margin:1px 0px 0px 0.4px;"></i>
</div>
<div class="igVideoData" style="color:#FFF; float:left;">
<i class="fa fa-map-marker spriteTemplate" aria-hidden="true" ></i>
</div>
</div>
您正在覆盖事件处理程序以前附加到的dom元素。因此,首先将单击事件附加到按钮,然后加载新的HTML并覆盖已附加处理程序的按钮,以便新按钮没有附加事件处理程序,这就是为什么它们不响应单击事件 将事件处理程序附加到未被覆盖的父元素,或者在加载并用新html覆盖后重新附加事件处理程序 我可能会将事件附加到它们的父级,这样当事件向上传播到dom树时,它就会得到处理
var buttons_parent = $('.galleryadv');
buttons_parent.on('click', '.avatar-galleryadv', function(){
$(this).hide(0);
$('.avatar-previewgalleryadvsave').fadeIn(300);
});
buttons_parent.on('click', '.avatar-previewgalleryadvsave', function(){
$(this).hide(0);
$('.avatar-galleryadv').fadeIn(300);
});
这将代替btn_edit.on(“单击”,function(){…
和btn_save.on(“单击”,function(){…
)。我也不会通过变量中保存的引用引用来引用处理程序中的按钮,因为这些按钮在覆盖它们之后将无效,所以我总是通过它们的类名来查找它们
这样,即使按钮被覆盖,处理其单击事件的处理程序也完好无损。感谢您帮助我解决了此问题,KoKa先生。非常感谢,但现在我的自定义选择标记始终更改为默认选择标记。需要一些帮助来解决我的自定义选择标记背景颜色,它会重新更改当div刷新时,请将其设置为默认颜色而不是黑色,谢谢。我假设您所说的标签是指div.galleryadv元素。它在ajax提交之前有背景色,还是应该在ajax提交之后才设置背景色?是的,我的选择标签是定制的,谢谢您的支持和支持看看我的情况,已经一周多了,我有4个问题,我用你的方法解决了3个问题,但是这个插件定制的选择标签不能用上面的方法工作。我已经发布了我的问题,但是没有人回复。如果可以的话,请帮我调查我的最后一个问题。非常感谢。这是我的链接。是的,它之前有背景色e ajax提交
var buttons_parent = $('.galleryadv');
buttons_parent.on('click', '.avatar-galleryadv', function(){
$(this).hide(0);
$('.avatar-previewgalleryadvsave').fadeIn(300);
});
buttons_parent.on('click', '.avatar-previewgalleryadvsave', function(){
$(this).hide(0);
$('.avatar-galleryadv').fadeIn(300);
});