Emi*_* He 3 javascript elixir phoenix-framework
在我的凤凰应用程序中,<%= link ... ,,方法:: delete%>在Bootstrap下拉列表中不起作用
<ul class="nav navbar-nav navbar-right">
<%= if !@conn.assigns.current_user do %>
<li> <%= link "Log In" , to: session_path(@conn, :new) %></li>
<% else %>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Hi!, <%= @conn.assigns.current_user.username %>
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><%= link "Log out", to: session_path(@conn, :delete, @conn.assigns.current_user), method: "delete" %></li>
<li> <%= link "Log In" , to: session_path(@conn, :new) %></li>
</ul>
</li>
<% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)
但是当我在"下拉菜单"之外制作时,它的效果很好.
当我将<%= link ...%>更改为<%=按钮...%>时,它也能正常工作!!
我的brunch.js包含了插件中的sass
plugins: {
babel: {
// Do not use ES6 compiler in vendor code
ignore: [/web\/static\/vendor/]
},
sass: {
options: {
includePaths: ["node_modules/bootstrap-sass/assets/stylesheets"], // tell sass-brunch where to look for files to @import
// minimum precision required by bootstrap-sass
//precision: 8
},
precision: 8
},
copycat: {
"fonts": ["node_modules/bootstrap-sass/assets/fonts/bootstrap"] // copy node_modules/bootstrap-sass/assets/fonts/bootstrap/* to priv/static/fonts/
}
},
...
...
npm: {
enabled: true,
whitelist: ["phoenix", "phoenix_html", "jquery"],
globals: { // bootstrap-sass' JavaScript requires both '$' and 'jQuery' in global scope
$: 'jquery',
jQuery: 'jquery',
bootstrap: 'bootstrap-sass' // require bootstrap-sass' JavaScript globally
}
}
Run Code Online (Sandbox Code Playgroud)
我认为问题与javascript有关,但我不知道如何修复它.
有人有同样的问题吗?谢谢!
问题来自Bootstrap的JavaScript部分.
这是违规行bootstrap.js(v3.3.7中的第910行):
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
Run Code Online (Sandbox Code Playgroud)
要使链接正常工作,您必须不要将链接包装在<form>标记中,或者通过在以下代码中包含以下代码来删除此事件处理程序app.js:
$(document).off('click.bs.dropdown.data-api', '.dropdown form');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
607 次 |
| 最近记录: |