我尝试使用我的popover选择列表项显示文本框,它不显示,这个问题怎么样?请帮我解决这个问题,我试着去做但不解决这个问题,看看代码这是结构,你可以理解它
我的代码部分 的 HTML
$(document).ready(function() {
$('.popr').popr();
});
$(document).on('click', '#feugait', function () {
alert('Feugait');
});
$(document).ready(function() {
$('[data-toggle="popover"]').popover();
$('[data-toggle="popover"]').on("click",function(){
$("#messageTextBox").val($(this).find("div").text());
});
});
(function($) {
$.fn.popr = function(options) {
var set = $.extend( {
'speed' : 200,
'mode' : 'bottom'
}, options);
return this.each(function() {
var popr_cont = '.popr_container_' + set.mode;
var popr_show = true;
$(this).click(function(event)
{
$('.popr_container_top').remove();
$('.popr_container_bottom').remove();
if (popr_show)
{
event.stopPropagation();
popr_show = false;
}
else
{
popr_show = true;
}
var d_m = set.mode;
if ($(this).attr('data-mode'))
{
d_m = $(this).attr('data-mode')
popr_cont = '.popr_container_' + d_m;
}
var out = '<div class="popr_container_' + d_m + '"><div class="popr_point_' + d_m + '"><div class="popr_content">' + $('div[data-box-id="' + $(this).attr('data-id') + '"]').html() + '</div></div></div>';
$(this).append(out);
var w_t = $(popr_cont).outerWidth();
var w_e = $(this).width();
var m_l = (w_e / 2) - (w_t / 2);
$(popr_cont).css('margin-left', m_l + 'px');
$(this).removeAttr('title alt');
if (d_m == 'top')
{
var w_h = $(popr_cont).outerHeight() + 39;
$(popr_cont).css('margin-top', '-' + w_h + 'px');
}
$(popr_cont).fadeIn(set.speed);
});
$('html').click(function()
{
$('.popr_container_top').remove();
$('.popr_container_bottom').remove();
popr_show = true;
});
});
};
})(jQuery);
.popr
{
cursor: pointer;
}
.popr a
{
color: #333;
text-decoration: none;
border: 0;
}
.popr-box
{
display: none;
}
.popr_content
{
background-color: #fff;
padding: 7px 0;
margin: 0;width: 200px;
height: auto;
}
.popr-item
{
font-family: sans-serif;
color: #333; text-align: center;
font-size: 16px;
padding: 4px 29px 5px 29px; border-bottom: solid 1px #fbeeee;
}
.popr-item:hover
{
color: #333;
background-color: #dcdcdc;
}
.popr_container_bottom
{
display: none;
position: absolute;
margin-top: 10px;
box-shadow: 2px 2px 5px #f9f9f9;
z-index: 1000;
}
.popr_container_top
{
display: none;
position: absolute;
box-shadow: 2px 2px 5px #f9f9f9;
z-index: 1000;
}
.popr_point_top
{
position: relative;
background: #fff;
border: 1px solid #dcdcdc;
}
.popr_point_top, .popr_point_bottom {
position: relative;
background: #fff;
border-radius: 12px;
}
.popr_point_top:after, .popr_point_top:before
{
position: absolute;
pointer-events: none;
border: solid transparent;
top: 100%;
content: "";
height: 0;
width: 0;
}
.popr_point_top:after
{
border-top-color: #fff;
border-width: 8px;
left: 50%;
margin-left: -8px;
}
.popr_point_top:before
{
border-top-color: #dcdcdc;
border-width: 9px;
left: 50%;
margin-left: -9px;
}
.popr_point_bottom:after, .popr_point_bottom:before
{
position: absolute;
pointer-events: none;
border: solid transparent;
bottom: 100%;
content: "";
height: 0;
width: 0;
}
.popr_point_bottom:after
{
border-bottom-color: #fff;
border-width: 8px;
left: 50%;
margin-left: -8px;
}
.popr_point_bottom:before
{
border-bottom-color: #dcdcdc;
border-width: 9px;
left: 50%;
margin-left: -9px;
}
.popover-title {
text-align: center; color: red;
}
.custom-popover li {
border: none!important;
text-align: center;
}
.custom-popover li:nth-child(2) {
border-top: 1px solid #ccc!important;
}
.custom-popover li:last-child {
border-top: 1px solid #ccc!important;
}
#title-pop {font-size: 12px; color: #b89981;}
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class=" popr form-group" data-id="1">
<a href="#" data-placement="bottom" title="Bill Category"><input class="form-control input-sm" id="messageTextBox" type="text" placeholder="Select category">
</a>
</div>
<div class="form-group">
<input class="form-control input-sm" id="Description" type="text" placeholder="Description">
</div>
<div class="form-group">
<input class="form-control input-sm" id="Date" type="text" placeholder="Date">
</div>
<div class="form-group">
<input class="form-control input-sm" id="Amount" type="text" placeholder="Amount">
</div>
<!-- loaded popover content -->
<div id="popover-section selectBox">
<div class="selectBox" class="popr-box" data-box-id="1">
<div id="title-pop" class=" popr-item">Bill category
</div>
<a href="#" title="Menu" data-toggle="popover" data-trigger="hover"><div class="popr-item">Staff Payment
</div></a>
<a href="#" title="Menu" data-toggle="popover" data-trigger="hover"><div class="popr-item">Food and Beverage
</div></a>
<a href="#" title="Menu" data-toggle="popover" data-trigger="hover"><div class="popr-item">Car rent
</div></a>
</div>
</div>
答案 0 :(得分:1)
你需要知道的是,元素id
只能在页面上有一个,但是你可以有很多class
,你可以在没有定义的情况下调用jQuery插件.popr()
,然后调用它。
(function($) {
$.fn.popr = function(options) {
var set = $.extend({
'speed': 200,
'mode': 'bottom'
}, options);
return this.each(function() {
var popr_cont = '.popr_container_' + set.mode;
var popr_show = true;
$(this).click(function(event) {
$('.popr_container_top').remove();
$('.popr_container_bottom').remove();
if(popr_show) {
event.stopPropagation();
popr_show = false;
}
else {
popr_show = true;
}
var d_m = set.mode;
if($(this).attr('data-mode')) {
d_m = $(this).attr('data-mode')
popr_cont = '.popr_container_' + d_m;
}
var out = '<div class="popr_container_' + d_m + '"><div class="popr_point_' + d_m + '"><div class="popr_content">' + $('div[data-box-id="' + $(this).attr('data-id') + '"]').html() + '</div></div></div>';
$(this).append(out);
var w_t = $(popr_cont).outerWidth();
var w_e = $(this).width();
var m_l = (w_e / 2) - (w_t / 2);
$(popr_cont).css('margin-left', m_l + 'px');
$(this).removeAttr('title alt');
if(d_m == 'top') {
var w_h = $(popr_cont).outerHeight() + 39;
$(popr_cont).css('margin-top', '-' + w_h + 'px');
}
$(popr_cont).fadeIn(set.speed);
});
$('html').click(function() {
$('.popr_container_top').remove();
$('.popr_container_bottom').remove();
popr_show = true;
});
});
};
})(jQuery);
$(document).ready(function() {
$('.popr').popr();
$('[data-toggle="popover"]').popover();
$(document).on("click", '[data-toggle="popover"]', function() {
$("#messageTextBox").val($(this).text());
});
$(document).on('click', '#feugait', function() {
alert('Feugait');
});
});
.popover-section{display:none}
.popr {
cursor: pointer;
}
.popr a {
color: #333;
text-decoration: none;
border: 0;
}
.popr-box {
display: none;
}
.popr_content {
background-color: #fff;
padding: 7px 0;
margin: 0;
width: 200px;
height: auto;
box-shadow: 1px 2px 2px #e4acac;
border:1px solid #eee
}
.popr-item {
font-family: sans-serif;
color: #333;
text-align: center;
font-size: 16px;
padding: 4px 29px 5px 29px;
border-bottom: solid 1px #fbeeee;
}
.popr-item:hover {
color: #333;
background-color: #dcdcdc;
}
.popr_container_bottom {
display: none;
position: absolute;
margin-top: 10px;
box-shadow: 2px 2px 5px #f9f9f9;
z-index: 1000;
}
.popr_container_top {
display: none;
position: absolute;
box-shadow: 2px 2px 5px #f9f9f9;
z-index: 1000;
}
.popr_point_top {
position: relative;
background: #fff;
border: 1px solid #dcdcdc;
}
.popr_point_top,
.popr_point_bottom {
position: relative;
background: #fff;
border-radius: 12px;
}
.popr_point_top:after,
.popr_point_top:before {
position: absolute;
pointer-events: none;
border: solid transparent;
top: 100%;
content: "";
height: 0;
width: 0;
}
.popr_point_top:after {
border-top-color: #fff;
border-width: 8px;
left: 50%;
margin-left: -8px;
}
.popr_point_top:before {
border-top-color: #dcdcdc;
border-width: 9px;
left: 50%;
margin-left: -9px;
}
.popr_point_bottom:after,
.popr_point_bottom:before {
position: absolute;
pointer-events: none;
border: solid transparent;
bottom: 100%;
content: "";
height: 0;
width: 0;
}
.popr_point_bottom:after {
border-bottom-color: #fff;
border-width: 8px;
left: 50%;
margin-left: -8px;
}
.popr_point_bottom:before {
border-bottom-color: #dcdcdc;
border-width: 9px;
left: 50%;
margin-left: -9px;
}
.popover-title {
text-align: center;
color: red;
}
.custom-popover li {
border: none!important;
text-align: center;
}
.custom-popover li:nth-child(2) {
border-top: 1px solid #ccc!important;
}
.custom-popover li:last-child {
border-top: 1px solid #ccc!important;
}
#title-pop {
font-size: 12px;
color: #b89981;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class=" popr form-group" data-id="1">
<a href="#" data-placement="bottom" title="Bill Category">
<input class="form-control input-sm" id="messageTextBox" type="text" placeholder="Select category">
</a>
</div>
<div class="form-group">
<input class="form-control input-sm" id="Description" type="text" placeholder="Description">
</div>
<div class="form-group">
<input class="form-control input-sm" id="Date" type="text" placeholder="Date">
</div>
<div class="form-group">
<input class="form-control input-sm" id="Amount" type="text" placeholder="Amount">
</div>
<!-- loaded popover content -->
<div class="popover-section selectBox">
<div class="selectBox" class="popr-box" data-box-id="1">
<div id="title-pop" class=" popr-item">Bill category
</div>
<a href="#" title="Menu" data-toggle="popover" data-trigger="hover">
<div class="popr-item">Staff Payment
</div>
</a>
<a href="#" title="Menu" data-toggle="popover" data-trigger="hover">
<div class="popr-item">Food and Beverage
</div>
</a>
<a href="#" title="Menu" data-toggle="popover" data-trigger="hover">
<div class="popr-item">Car rent
</div>
</a>
</div>
</div>
答案 1 :(得分:0)
我不应该包含空格您只需删除
category
:
<input class="form-control input-sm" id="messageTextBox" type="text" placeholder="Select category">
同样的说明也应适用于id="popover-sectio selectBox"
。
注意:您正在将onchange
个事件附加到div
并尝试访问value
的{{1}}个属性,从那时起就没有。
希望这有帮助。
答案 2 :(得分:0)
==
&#13;
检查一下。