使CSS菜单项加载网站,而不是使用javascript更改占位符
我有一个css菜单,但当我尝试从菜单加载url时,就像示例中的google一样。它只更改占位符的名称,不加载页面。你知道怎么改变吗 谢谢你的帮助 例如,尝试在菜单中加载google: HTML使CSS菜单项加载网站,而不是使用javascript更改占位符,javascript,jquery,html,css,menu,Javascript,Jquery,Html,Css,Menu,我有一个css菜单,但当我尝试从菜单加载url时,就像示例中的google一样。它只更改占位符的名称,不加载页面。你知道怎么改变吗 谢谢你的帮助 例如,尝试在菜单中加载google: HTML 运输 您的标记是的后代,该div有一个click处理程序,该处理程序返回false,并抑制默认的click操作。单击事件在a标记上生成,并冒泡到div以抑制该事件 一种可行的方法是添加以下内容: if ($(event.target).is("a[href!=#]")) retu
运输
您的
标记是
的后代,该div有一个click
处理程序,该处理程序返回false
,并抑制默认的click操作。单击事件在a
标记上生成,并冒泡到div
以抑制该事件
一种可行的方法是添加以下内容:
if ($(event.target).is("a[href!=#]"))
return true;
就在
的上方返回false代码>行您正在阻止链接(甚至子链接)的标准行为:
obj.dd.on('click', function(event){
$(this).toggleClass('active');
return false;
});
添加以下代码以防止菜单项上的单击冒泡到上述处理程序:
obj.dd.find('a').on('click',function(event){
event.stopPropagation();
});
这是一个例子
注意:检查控制台以查看结果,因为jsfiddle不会在其iframe(SAMEORIGIN策略)中加载google.com。方法#1:最简单的方法是删除返回false代码>从obj.dd的click事件中添加事件.stopPropagation()代码>在它的开头,然后只给你的link href属性一个值,它们就会加载该页面。像这样:
obj.dd.on('click', function(event){
event.stopPropagation();
$(this).toggleClass('active');
});
方法2:或者你可以试试:
obj.opts.on('click',function(e){
e.preventDefault();
var opt = $(this);
obj.val = opt.text();
obj.index = opt.index();
obj.placeholder.text(obj.val);
window.location.href = opt.attr('href');
});
在HTML中,添加与您的google链接类似的链接。谢谢您的帮助。我很感激。非常感谢你@designcise!非常感谢您的帮助@Lucas!
obj.dd.on('click', function(event){
event.stopPropagation();
$(this).toggleClass('active');
});
obj.opts.on('click',function(e){
e.preventDefault();
var opt = $(this);
obj.val = opt.text();
obj.index = opt.index();
obj.placeholder.text(obj.val);
window.location.href = opt.attr('href');
});