在动态显示/隐藏的元素上应用Jquery
我有一个页面,可以让菜单下拉,以便做出反应。所以很明显,只有当屏幕更小时,选择标签才会出现在图片中。我想将jquery应用于那个选择框和当时动态添加的其他两个按钮 我提出这个问题: 但这并没有帮我解决问题。谁能解释一下我哪里出了问题 我使用jquery在我的页面中创建了下拉菜单。-如果有人需要,仅供参考 以下是我尝试过的:在动态显示/隐藏的元素上应用Jquery,jquery,dynamic,drop-down-menu,responsive-design,element,Jquery,Dynamic,Drop Down Menu,Responsive Design,Element,我有一个页面,可以让菜单下拉,以便做出反应。所以很明显,只有当屏幕更小时,选择标签才会出现在图片中。我想将jquery应用于那个选择框和当时动态添加的其他两个按钮 我提出这个问题: 但这并没有帮我解决问题。谁能解释一下我哪里出了问题 我使用jquery在我的页面中创建了下拉菜单。-如果有人需要,仅供参考 以下是我尝试过的: <div id="nav" role="navigation"> <a href="#nav" title="Show navi
<div id="nav" role="navigation">
<a href="#nav" title="Show navigation" id="shownav">
choose one
<img src="images/dropmenu-arrow.png" alt="" class="droparrow">
</a>
<a href="#" title="Hide navigation" id="hidenav">
choose one
<img src="images/dropmenu-arrow.png" alt="" class="droparrow">
</a>
<ul class="clearfix" id="kat-drop">
<li><a href="#">list item 1</a></li>
<li><a href="#">list item 2</a></li>
<li><a href="#">list item 3</a></li>
</ul>
</div>
<script src="js/doubletaptogo.min.js"></script>
<script>
$( function()
{
$( '#nav li:has(ul)' ).doubleTapToGo();
});// upto this-it runs fine giving me dropmenu for desired screen
$(document).on("click",$("#shownav"), function(){
//alert("clicked"); // this didn't work neither the rest of the code from here
if($("#kat-drop").css("display")=="block"){
$("#kat-drop").slideUp();
}
else{
$("#kat-drop").slideDown();
}
} );
</script>
编辑-2
它既不能防止重新加载页面,也不能提醒我
$(document).on("click","#shownav", function(event){
event.preventDefault(); // i want to prevent reloading of page too which doesn't work for now.
} );
$(document).on("click","#shownav", function(event){
alert("clicked");// not working yet
} );
第二个参数应该是字符串选择器,您正在传递jQuery对象
$(document).on("click","#shownav", function(){});
第二个参数应该是字符串选择器,您正在传递jQuery对象
$(document).on("click","#shownav", function(){});
只需从以下位置更改代码:
$(document).on("click",$("#shownav"), function(){
$(document).on("click",$("#shownav"), function(){
为此:
$(document).on("click", "#shownav", function(){
$(document).on("click","#shownav", function(){
如所示,使用时的正确语法如下:
更新
但它仍然刷新了整个页面,这是我唯一想做的事情
要防止同时隐藏/显示菜单
您只需使用以下命令来防止锚定的默认单击操作:
在编辑的代码中:
$(document).on("click", "#shownav", function (event) {
event.preventDefault();
});
$(document).on("click", "#shownav", function (event) {
alert("clicked"); // not working yet
});
您已将两个事件处理程序附加到同一元素。只需分配一个事件处理程序,如下所示:
$(document).on("click", "#shownav", function (e) {
e.preventDefault();
alert("clicked");
});
并查看与我提供的小提琴演示类似的结果。只需将代码更改为:
$(document).on("click",$("#shownav"), function(){
$(document).on("click",$("#shownav"), function(){
为此:
$(document).on("click", "#shownav", function(){
$(document).on("click","#shownav", function(){
如所示,使用时的正确语法如下:
更新
但它仍然刷新了整个页面,这是我唯一想做的事情
要防止同时隐藏/显示菜单
您只需使用以下命令来防止锚定的默认单击操作:
在编辑的代码中:
$(document).on("click", "#shownav", function (event) {
event.preventDefault();
});
$(document).on("click", "#shownav", function (event) {
alert("clicked"); // not working yet
});
您已将两个事件处理程序附加到同一元素。只需分配一个事件处理程序,如下所示:
$(document).on("click", "#shownav", function (e) {
e.preventDefault();
alert("clicked");
});
并查看我提供的小提琴演示的结果。更改此选项:
为此:
$(document).on("click", "#shownav", function(){
$(document).on("click","#shownav", function(){
更新:
好的,另一个你可以试试:
$(function(){
$( '#nav li:has(ul)' ).doubleTapToGo();
$(document).on("click","#shownav", function(event){ //<--pass the event here too
event.preventDefault();// <-----------stop the default behavior of anchor
});
});// upto this-it runs fine giving me dropmenu for desired screen
更改此项:
为此:
$(document).on("click", "#shownav", function(){
$(document).on("click","#shownav", function(){
更新:
好的,另一个你可以试试:
$(function(){
$( '#nav li:has(ul)' ).doubleTapToGo();
$(document).on("click","#shownav", function(event){ //<--pass the event here too
event.preventDefault();// <-----------stop the default behavior of anchor
});
});// upto this-it runs fine giving me dropmenu for desired screen
我试过这个。但它仍然刷新了整个页面,这是我唯一想阻止隐藏/显示菜单的事情。请查看编辑。它仍然不起作用:似乎代码不起作用,因为我甚至没有得到警告,我在那里尝试了。我把代码放在我的页面ul标签下面。有什么问题吗?@Hiral尝试将click函数放入doc ready处理程序。请参阅答案中的最新编辑。也尝试了此。。元素已经存在,jquery将隐藏/显示这些元素。我认为,即使是普通的jquery函数也应该可以工作,但事实并非如此。你知道吗?我试过了。但它仍然刷新了整个页面,这是我唯一想阻止隐藏/显示菜单的事情。请查看编辑。它仍然不起作用:似乎代码不起作用,因为我甚至没有得到警告,我在那里尝试了。我把代码放在我的页面ul标签下面。有什么问题吗?@Hiral尝试将click函数放入doc ready处理程序。请参阅答案中的最新编辑。也尝试了此。。元素已经存在,jquery将隐藏/显示这些元素。我认为,即使是普通的jquery函数也应该可以工作,但事实并非如此。你知道吗?我试过了。但它仍然刷新了整个页面,这是我唯一想阻止隐藏/显示菜单的事情。请看编辑。非常感谢。。我明白你的意思,但就我的情况而言,它似乎是站不住脚的事实上,元素已经存在了。它只是被jquery隐藏和显示。但即使是普通的jquery函数也可以使用,所以我尝试了这个。非常感谢!你的小提琴帮了大忙,我试过了。但它仍然刷新了整个页面,这是我唯一想阻止隐藏/显示菜单的事情。请看编辑。非常感谢。。我明白你的意思,但就我的情况而言,它似乎是站不住脚的事实上,元素已经存在了。它只是被jquery隐藏和显示。但即使是普通的jquery函数也可以使用,所以我尝试了这个。非常感谢!你的小提琴帮了大忙。