I am not getting this to work. The dropdown is closing all the time.
I want to be able to send message from the dropdown menu.
I included both bootstrap.js
, bootstrap.css
and bootstrap-responsive.css
in the header.
How can I get this dropdown not to close ?
<head>
<script type='text/javascript'>//<![CDATA[
$(window).load(function () {
$('.dropdown-menu textarea a').click(function (e) {
e.stopPropagation();
});
});
function ShowDr(div) {
$("#medr" + div).css("display", "block");
$("#xdr" + div).focus();
}
//]]>
</script>
</head>
<body>
<ul class="nav">
<li class="dropdown" data-dropdown="dropdown">
<a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown"> Message
<b class="caret"></b></a>
<ul class="dropdown-menu dropdown-menu-large">
This is a message from the user John to Ann. If Ann wants to send an answer she will click the link. Then
the textarea will become visible.
<a href="javascript:void(0)" onclick="javascript:ShowDr('18')"><img src='/img/reply.gif'> Answer</a><br/>
<div id="medr18" style="display:none" class="medr">
<li>
<div style="padding:20px;">
<textarea name="xdr18" id="xdr18" class="textareasmall"></textarea> <br /><input type=button value="Send" class="btn btn-success btn-medium" onclick="GoM('2','Message sent')" />
</div>
</li>
</div>
</ul>
</li>
</ul>
You need to properly select the textarea in order for the stopPropagation()
method to work. Try this:
JS
$('.dropdown-menu textarea').click(function(e) {
e.stopPropagation();
});
Also, your textarea cannot be a child of a ul
element, so include it inside a li
list item instead.
Demo: http://jsfiddle.net/ENWFy/
Time passed since answer had been accepted, but if you want to keep the dropdown opened, if it acts like a kind of dialog, the best way i think is:
$('.dropdown').dropdown().on("hide.bs.dropdown", function(e) {
if ($.contains(dropdown, e.target)) {
e.preventDefault();
//or return false;
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With