我有这行 jQuery
jQuery(document).ready(function($) {
$(".thumbs a.dlink").live("click", function() {
alert("yo");
});
在我最初包含的链接上,代码中有一个 return false 阻止了页面按预期工作。警报只是我在测试,但事实证明警报会延迟任何当前页面操作,直到它关闭。
非常感谢大家!
编辑:很抱歉这可能造成的任何混乱。故事的寓意——当心返回虚假的!
我认为问题出return false
在您的代码中。
jQuery(document).ready(function($) {
$(".thumbs a.dlink").live("click", function() {
var id = $(this).attr('id'); //$("#galid").val();
id = id.substr(1);
alert("yo");
$.post( MyAjax.ajaxurl, {
action : 'download_counter',
postCommentNonce : MyAjax.postCommentNonce,
id : id
},function(response) {} );
});
});
该window.alert
函数暂停页面上的 JavaScript 并且是模态的,因此在用户关闭对话框之前不会发生任何事情。我对替代方案的建议是在 html 中创建您自己的警报对话框,或使用其中的许多库/插件之一,例如jQuery UI 的对话框小部件,并将其用于您的消息以代替警报。由于您只是添加了一个 dom 元素,因此不会暂停您的脚本,并且任何异步函数都将正常运行。
尝试更多类似的东西:
<div id='dialog-yo' title='Download In Progress'>Yo</div>
<div class='thumbs'><a class="dlink" dlTitle='my cool image'>try this now</a></div>
<script>
$(function() {
$( '#dialog-yo' ).dialog({
modal: false,
autoOpen: false,
closeOnEscape: true,
draggable: true,
hide: 'slide',
show: 'fade',
resizable: true,
height: 200,
width: 200,
zIndex: 200,
buttons: {
'Yeah, Okay': function() { $( '#dialog-yo' ).dialog('close'); }
}
});
$(".thumbs a.dlink").live("click", function() {
$( '#dialog-yo' ).dialog('open').html(this.getAttribute('dlTitle'));
});
});
</script>
查看您的网站后,我不确定您的通知的目的,但希望这能让您朝着灵活的方向前进,您可以继续前进。