Jquery ui 在Google Chrome的JQuery选项卡中防止默认点击
我想防止点击链接的默认行为。我试着返回错误;还有javascript:void(0);在href属性中,但它似乎不起作用。它在Firefox中运行良好,但在Chrome和IE中不起作用 我有一个选项卡,通过AJAX加载内容,这是一个简单的链接Jquery ui 在Google Chrome的JQuery选项卡中防止默认点击,jquery-ui,google-chrome,Jquery Ui,Google Chrome,我想防止点击链接的默认行为。我试着返回错误;还有javascript:void(0);在href属性中,但它似乎不起作用。它在Firefox中运行良好,但在Chrome和IE中不起作用 我有一个选项卡,通过AJAX加载内容,这是一个简单的链接 <script type="text/javascript"> $(function() { $("#tabs").tabs({ ajaxOptions: {
<script type="text/javascript">
$(function() {
$("#tabs").tabs({
ajaxOptions: {
error: function(xhr, status, index, anchor) {
$(anchor.hash).html("Couldn't load this tab. We'll try to fix this as soon as possible. If this wouldn't be a demo.");
},
success: function() {
alert('hello');
$('#lk').click(function(event) {
alert('Click Me');
event.preventDefault();
return false;
});
}
},
load: function(event, ui) {
$('a', ui.panel).click(function(event) {
$(ui.panel).load(this.href);
event.preventDefault();
return false;
});
}
});
});
</script>
<body>
<div id="tabs">
<ul>
<li><a href="linkChild.htm">Link</a></li>
</ul>
</div>
</body>
$(函数(){
$(“#制表符”)。制表符({
ajaxOptions:{
错误:函数(xhr、状态、索引、锚定){
$(anchor.hash.html(“无法加载此选项卡。我们将尝试尽快修复此问题。如果这不是演示。”);
},
成功:函数(){
警惕(“你好”);
$('#lk')。单击(函数(事件){
警报(“点击我”);
event.preventDefault();
返回false;
});
}
},
加载:函数(事件、用户界面){
$('a',ui.panel)。单击(函数(事件){
$(ui.panel).load(this.href);
event.preventDefault();
返回false;
});
}
});
});
linkChild.htm的内容是
<a href="http://www.google.com" id="lk">Click Me</a>
因此,基本上,当标签内容加载成功时,点击事件会附加到链接“lk”。当我点击链接时,会显示警报,但随后链接消失。我检查HTML,元素实际上已从DOM中删除
$('#selector').click(function(event) {
event.preventDefault();
});
默认情况下,事件对象会传递给click处理程序-您必须在那里有一些东西才能接收它。一旦发生事件,就可以使用jQuery的.preventDefault()
方法取消链接的行为
编辑:
以下是您的代码片段,已更正:
$('a', ui.panel).click(function(event) {
$(ui.panel).load(this.href);
event.preventDefault();
return false;
});
请注意,在创建anon函数时添加了“event”一词(或者您可以只使用e或其他任何东西-名称不重要,事实上存在一个var。I虽然返回false,但执行的操作与event.preventDefault()相同;不幸的是使用了.preventDefault()方法不起作用。您的单击处理程序没有捕获事件。您的单击处理程序函数中需要一个变量,就像我在示例中得到的那样。
函数(事件)
。然后使用事件.preventDefault()
。返回false不是跨浏览器的。例如,在IE中,您需要将事件.returnValue
属性设置为false,这与返回false不同。.preventDefault
为您处理所有xbrowser细节。我还将.preventDefault
添加到lk
的单击处理程序中。我还更改了href属性,在firebug中,我可以看到google站点的GET请求。请参阅编辑的代码。我接受应答事件,尽管它没有解决我的问题。应答实际上阻止了默认的单击行为。删除加载功能可以解决问题。