Jquery e、 preventDefault不稳定,不阻止默认操作
我试图使链接不执行指向链接的默认操作,而是在用户单击链接时执行其余代码,在本例中,这些代码加载我使用AJAX调用的适当url元素,并将它们放置在正确的Divs/span中。这是代码Jquery e、 preventDefault不稳定,不阻止默认操作,jquery,events,preventdefault,Jquery,Events,Preventdefault,我试图使链接不执行指向链接的默认操作,而是在用户单击链接时执行其余代码,在本例中,这些代码加载我使用AJAX调用的适当url元素,并将它们放置在正确的Divs/span中。这是代码 $(function(){ $('body').append('<span id="view_mess">New Message</span><div id="mess_wrapper"><div id="new_mess_pop"><div id="b
$(function(){
$('body').append('<span id="view_mess">New Message</span><div id="mess_wrapper"><div id="new_mess_pop"><div id="button_wrap"><span id="post_date_time"></span><div id="users_contact_info"><div id="users_image"></div><div id="message_lister"></div></div><div id="message_post"></div><div id="inner_mess_wrapper"></div></div></div></div>');
$('#message_lister').load('/privmsg?folder=inbox .tdtopics:lt(5)');
$('#view_mess').click(function() {
$('#mess_wrapper').show();
});
$('.topictitle').click(function(e) {
var msg = $('.tdtopics a').attr('href');
$.get(msg, function (data) {
var elems = $(data);
$('#post_date_time').append(elems.find('div.posthead h2'));
$('#users_image').append(elems.find('.user-basic-info'));
$('#message_post').append(elems.find('.entry-content'));
}, 'html');
e.preventDefault();
$('#mess_wrapper').show();
});
$(函数(){
$('body').append('newmessage');
$(“#消息列表器”).load(“/privmsg?folder=inbox.tdtopics:lt(5)”;
$(“#查看_-mess”)。单击(函数(){
$('mess_wrapper').show();
});
$('.topictitle')。单击(函数(e){
var msg=$('.tda').attr('href');
$.get(消息,函数(数据){
变量元素=$(数据);
$(“#post_date_time”).append(elems.find('div.postfead h2');
$('#users_image').append(elems.find('.user basic info'));
$('#message_post').append(elems.find('.entry content'));
}","html";;
e、 预防默认值();
$('mess_wrapper').show();
});
我已经尝试了e.preventDefault();
在上面代码中的位置和函数代码之后。也许我应该在第一个函数中写e?试试
return false;
这将阻止默认设置,也将阻止传播尝试以下操作:
Try with this :
Two things :you missed the end bracket of function and e.preventdefault shuld be in start of the event
$(function(){
$('body').append('<span id="view_mess">New Message</span><div id="mess_wrapper"><div id="new_mess_pop"><div id="button_wrap"><span id="post_date_time"></span><div id="users_contact_info"><div id="users_image"></div><div id="message_lister"></div></div><div id="message_post"></div><div id="inner_mess_wrapper"></div></div></div></div>');
$('#message_lister').load('/privmsg?folder=inbox .tdtopics:lt(5)');
$('#view_mess').click(function() {
$('#mess_wrapper').show();
});
$('.topictitle').click(function(e) {
e.preventDefault();
var msg = $('.tdtopics a').attr('href');
$.get(msg, function (data) {
var elems = $(data);
$('#post_date_time').append(elems.find('div.posthead h2'));
$('#users_image').append(elems.find('.user-basic-info'));
$('#message_post').append(elems.find('.entry-content'));
}, 'html');
$('#mess_wrapper').show();
});
}
两件事:你错过了函数的结束括号,e.preventdefault应该在事件的开始
$(函数(){
$('body').append('newmessage');
$(“#消息列表器”).load(“/privmsg?folder=inbox.tdtopics:lt(5)”;
$(“#查看_-mess”)。单击(函数(){
$('mess_wrapper').show();
});
$('.topictitle')。单击(函数(e){
e、 预防默认值();
var msg=$('.tda').attr('href');
$.get(消息,函数(数据){
变量元素=$(数据);
$(“#post_date_time”).append(elems.find('div.postfead h2');
$('#users_image').append(elems.find('.user basic info'));
$('#message_post').append(elems.find('.entry content'));
}","html";;
$('mess_wrapper').show();
});
}
不,我有结束括号。代码还有更多内容,但没有任何干扰,因此我没有发布它。我也在那里尝试了,它会转到链接。是否已将e.preventDefault()移到函数顶部?即使它不起作用…使用event.stopPropagation();在阻止默认设置之后立即停止进一步的事件流..我已经移动了它。我猜问题是我动态创建了内容:(这是我的错,我想我应该发布整个脚本,因为我猜这就是问题所在。我应该将此返回放在哪里?在函数()之后){或者我在哪里有preventDefault?至于return,我想它最好在函数的末尾,这也不起作用。这让我很困惑为什么它不阻止默认操作:/