为什么在jQuery中同时调用if和else条件?
Why are both if and else conditions getting called in jQuery?
我的问题是关于使用委托,.on();
我已经环顾四周,无法找到信息在这里stackoverflow可能解决我的问题。
我的click事件中的两个条件都被触发或根本不被触发。我试过切换条件,仍然要么开火要么根本不开火,我不知道为什么。
当前提供的jQuery根本不会触发。如果我删除或注释掉else语句中的所有代码,并添加console.log('test')作为测试,那么您将看到两者都被触发。
有谁能帮我解决一下问题吗?不幸的是,我无法通过jsfiddle模拟环境,因为这是一个VPN背后的drupal站点,有很多依赖项。jQuery代码如下:
// Depth 1 Menu Controls
$('nav #block-superfish-1').on('click', 'li.menuparent.sf-depth-1 div.mobilesubnavarrow', function(){
if(!$(this).hasClass('sf-expanded')){
// Global
$('li.menuparent.sf-depth-1').removeClass('sf-expanded');
$('li.menuparent.sf-depth-1 div.mobilesubnavarrow').removeClass('sf-expanded');
$('li.menuparent.sf-depth-1').find('ul').css({display: 'none'});
$(this).addClass('sf-expanded');
$(this).closest('li.menuparent.sf-depth-1').addClass('sf-expanded');
$(this).closest('li.menuparent.sf-depth-1').find('ul').slideDown();
return;
} else {
//$(this).removeClass('sf-expanded');
$(this).closest('li.menuparent.sf-depth-1').removeClass('sf-expanded');
$(this).closest('li.menuparent.sf-depth-1').find('ul').slideUp();
}
});
我也有另一个完全相同的jQuery 'Depth 2',唯一改变的是类.sf-depth-2
,所以没有在这里张贴的意义。
感谢您的宝贵时间。
我已经创建了一个简化的代码:
https://jsfiddle.net/f6f2j319/上面的代码看起来像预期的那样工作。如果代码根本没有触发,我建议您检查是否指定了正确的jQuery选择器:
li.menuparent.sf-depth-1 div.mobilesubnavarrow
内nav #block-superfish-1
(也检查你的标记结构,以确保div的正确顺序…比较它与我的小提琴)
if
和else
语句不应该同时发射…函数有可能连续触发两次,但如果没有看到更多的代码,很难说。
检查您的脚本没有在页面中包含两次(特别是如果它包含意大利面条代码)。
我还在else
语句中添加了注释:https://jsfiddle.net/k14oumfe/
这似乎是你需要的行为。
如果不是这样,请告诉我。
相关文章:
- 如何在ReactJS JSX中执行嵌套的if-else语句
- Javascript Return and if/else
- JavaScript if-else 速记错误
- 如何检查if/else语句中的随机条件
- 在javascript中创建数组,而不是if.else
- Javascript If else 只返回 TRUE 或只返回 FALSE
- jquery if else不返回警报消息
- 在Javascript中为if/else语句添加OR
- If Else Java Script HTML
- jQuery/Javascript foreach If/Else |如果为空(不执行任何操作)Else(显示forea
- 我应该如何应用if-else条件来向具有不同用户角色的人显示不同的菜单
- geoTest函数-创建if/else语句
- JavaScript中的温度转换器(IF ELSE条件)
- Jquery/Javascript使用IF/ELSE语句更改img SRC
- 编写if-else语句的更好方法
- 在if/else语句中显示DIV
- PHP If Else-隐藏按钮
- JavaScript if/else未按预期操作
- if/else运算符未更改
- 名称不能以''jquery-if-else条件中的字符