Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 在Google Chrome的JQuery选项卡中防止默认点击_Jquery Ui_Google Chrome - Fatal编程技术网

Jquery ui 在Google Chrome的JQuery选项卡中防止默认点击

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: {

我想防止点击链接的默认行为。我试着返回错误;还有javascript:void(0);在href属性中,但它似乎不起作用。它在Firefox中运行良好,但在Chrome和IE中不起作用

我有一个选项卡,通过AJAX加载内容,这是一个简单的链接

<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请求。请参阅编辑的代码。我接受应答事件,尽管它没有解决我的问题。应答实际上阻止了默认的单击行为。删除加载功能可以解决问题。