This seems not working for me. Any leads if possible.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Kế toán
- Tồn kho
- PoS
- Project
- MRP
Câu hỏi này đã bị gắn cờ
This seems not working for me. Any leads if possible.
Hi,
add a a logger to make sure that elements you search are found and they are what you search for:
console.log("clickover: ", clickover, "_opened: ", _opened);
My assumption is that it is not so: e.g. 'clickover' would ever hardly have the searched class, since event relates to a 'document', not your dropdown.
Finally, the issue you are trying to solve is quite controversial, you should be really cautious of extending outside Odoo standard js. Have a look here: https://stackoverflow.com/questions/152975/how-do-i-detect-a-click-outside-an-element.
UPDATE
try this code:
$(document).ready(function () {
$(document).click(function (event) {
event.stopPropagation();
var thisButton = $(document).find('.navbar-collapse navbar-top-collapse collapse in');
console.log("thisButton", thisButton);
thisButton.removeClass("collapse");
});
});
in the last string put the class which is responsible for beeing expanded
Thank you.
I used this logger and i get this error :
collapse_menu.js:13 Uncaught ReferenceError: clickover is not defined
Comment 2:
I did this - Thanks.
Console:
payment_form.js:459 DOM doesn't contain '.o_payment_form'
tour_manager.js:170 Tour Manager is ready. running_tour=null
collapse_menu.js:9 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
collapse_menu.js:20 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
collapse_menu.js:32 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
Do i need to do something else as well? Because the menu dropdown is not closing when i click outside. And the _opened: is always false.
you should add it after defining the var (before 'if'). clickover is definitely inside your method - 'var clickover ='
payment_form.js:459 DOM doesn't contain '.o_payment_form'
tour_manager.js:170 Tour Manager is ready. running_tour=null
collapse_menu.js:9 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
collapse_menu.js:20 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
collapse_menu.js:32 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
Do i need to do something else as well? Because the menu dropdown is not closing when i click outside. And the _opened: is always false.
This is my .js file:
odoo.define('theme_wibas.collapseMenu', function (require) {
'use strict';
$(document).ready(function () {
$(document).click(function (event) {
var clickover = $(event.target);
var _opened = $(".navbar-top-collapse").hasClass("navbar-collapse navbar-top-collapse collapse in");
console.log("clickover: ", clickover, "_opened: ", _opened);
if (_opened === true && !clickover.hasClass("navbar-toggle collapsed")) {
$("button.navbar-toggle collapsed").click();
}
});
});
It means that selector $(".navbar-top-collapse") ie either not found or doesn't have a searched class. Besides, I guess what you do in 'if' is not correct, since the second part would be always true. It is better to use removeClass which will check for class by itself. I updated my initial answer - try to use it.
odoo.define('theme_wibas.collapseMenu', function (require) {
'use strict';
$(document).ready(function () {
$(document).click(function (event) {
event.stopPropagation();
var thisButton = $(document).find('.o_dropdown_toggler_btn');
console.log("thisButton", thisButton);
thisButton.removeClass(".navbar-toggle");
});
});
Doesn't work... :(
var thisButton = $(document).find('.navbar-collapse navbar-top-collapse collapse in');
$(document).ready(function () {
$(document).click(function (event) {
event.stopPropagation();
var thisButton = $(document).find('.navbar-collapse navbar-top-collapse collapse in');
console.log("thisButton", thisButton);
thisButton.removeClass(".navbar-toggle");
// thisButton.removeClass(".navbar-toggle collapsed");
});
});
Nope. Its still the same...
and what is logged by console.log("thisButton", thisButton)?
thisButton jQuery.fn.init [prevObject: jQuery.fn.init(1), context: document, selector: ".navbar-collapse navbar-top-collapse collapse in"]context: documentlength: 0prevObject: jQuery.fn.init [document, context: document]selector: ".navbar-collapse navbar-top-collapse collapse in"__proto__: Object(0)
So, length of found items is zero. It means that no elements with the class navbar-collapse navbar-top-collapse collapse in are on the document. Double check that you have an element with such a class
Ok will post all details:
1. When i click on the menu :
<button id="mainmenubutton" type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-top-collapse">
<div class="w-toggle-menu">Menü</div>
<div class="w-toggle-close">×</div>
<div class="w-toggle-hamburger">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</div>
</button>
2. the the dropdown list code:
<div class="navbar-collapse navbar-top-collapse collapse in" aria-expanded="true" style="">
<ul class="nav navbar-nav navbar-left" id="top_menu">
<li>
<a href="/unternehmen">
<span data-oe-model="website.menu" data-oe-id="19" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">(f) Unternehmen</span>
</a>
</li>
<li>
<a href="/digitalisierung">
<span data-oe-model="website.menu" data-oe-id="15" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Digitalisierung</span>
</a>
</li>
<li>
<a href="/agile-organisation">
<span data-oe-model="website.menu" data-oe-id="7" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Agile Organisation</span>
</a>
</li>
<li>
<a href="/scaled-agile">
<span data-oe-model="website.menu" data-oe-id="24" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Scaled Agile</span>
</a>
</li>
<li>
<a href="/agile-methoden">
<span data-oe-model="website.menu" data-oe-id="22" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Agile Methoden</span>
</a>
</li>
<li>
<a href="/beratung">
<span data-oe-model="website.menu" data-oe-id="11" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Beratung</span>
</a>
</li>
<li>
<a href="/schulungen">
<span data-oe-model="website.menu" data-oe-id="9" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Schulungen</span>
</a>
</li>
<li>
<a href="/veranstaltungen">
<span data-oe-model="website.menu" data-oe-id="4" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Veranstaltungen</span>
</a>
</li>
<li>
<a href="/publikationen">
<span data-oe-model="website.menu" data-oe-id="5" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Publikationen</span>
</a>
</li>
<li>
<a href="/topicpage">
<span data-oe-model="website.menu" data-oe-id="38" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Topicpage</span>
</a>
</li>
<li>
<a href="/scaled-agile-1">
<span data-oe-model="website.menu" data-oe-id="37" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Scaled-Agile</span>
</a>
</li>
<li>
<a href="/lotse">
<span data-oe-model="website.menu" data-oe-id="39" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Ihr Lotse</span>
</a>
</li>
<li>
<a href="/gulshan">
<span data-oe-model="website.menu" data-oe-id="40" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">gulshan</span>
</a>
</li>
<li>
<a href="/test">
<span data-oe-model="website.menu" data-oe-id="41" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">test</span>
</a>
</li>
<li>
<a href="/test-1">
<span data-oe-model="website.menu" data-oe-id="42" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">test</span>
</a>
</li>
<li>
<a href="/gulshan-1">
<span data-oe-model="website.menu" data-oe-id="44" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">gulshan</span>
</a>
</li>
<li class="divider"></li>
<li data-oe-model="ir.ui.view" data-oe-id="1327" data-oe-field="arch" data-oe-xpath="/data/xpath[4]/div[1]/div[2]/div[1]/ul[1]/li[2]">
<form class="navbar-form navbar-left" role="search">
<div class="inner-addon right-addon">
<i class="fa fa-search"></i>
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default hidden">Submit</button>
</form>
</li>
<li class="lang-select">
<a class="js_change_lang" href="/en_US/?debug=assets" data-lang="en_US">
switch to english
</a>
</li>
</ul>
</div>
Any help? I tried out every possible thing.
Hey Guys - The solution is this. This worked fine.
$(document).click(function (event) {
var clickover = $(event.target);
var $navbar = $(".navbar-top-collapse");
var _opened = $navbar.hasClass("in");
if (_opened === true && !clickover.hasClass("navbar-toggle collapsed")) {
$navbar.collapse('hide');
}
});
Hi,
add a a logger to make sure that elements you search are found and they are what you search for:
console.log("clickover: ", clickover, "_opened: ", _opened);
My assumption is that it is not so: e.g. 'clickover' would ever hardly have the searched class, since event relates to a 'document', not your dropdown.
Finally, the issue you are trying to solve is quite controversial, you should be really cautious of extending outside Odoo standard js. Have a look here: https://stackoverflow.com/questions/152975/how-do-i-detect-a-click-outside-an-element.
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!
Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!
Đăng kýBài viết liên quan | Trả lời | Lượt xem | Hoạt động | |
---|---|---|---|---|
Odoo 11 Hide EDIT & DELETE
Đã xử lý
|
|
1
thg 3 21
|
3167 | |
Odoo Date Total In Version 11
Đã xử lý
|
|
3
thg 3 19
|
3272 | |
|
1
thg 5 20
|
6462 | ||
Hide field using One2many domain
Đã xử lý
|
|
1
thg 1 19
|
5896 | |
|
0
thg 11 18
|
5429 |