Bootstrap内部弹出式窗口内容的切换按钮不起作用(Bootstrap toggle buttons inside popover content not working)

编程入门 行业动态 更新时间:2024-10-24 18:17:00
Bootstrap内部弹出式窗口内容的切换按钮不起作用(Bootstrap toggle buttons inside popover content not working)

我做了一个jsFiddle ,我使用twitter bootstrap切换按钮和popover。

HTML:

<div class="btn-group btn-toggle"> <button class="btn btn-sm btn-info">On</button> <button class="btn btn-sm btn-primary active">Off</button> </div> <button id="popbutton" class="btn btn-lg btn-warn">pop up</button>

JS:

var popupElement = '<div class="btn-group btn-toggle"><button class="btn btn-sm btn- info">On</button><button class="btn btn-sm btn-primary active">Off</button></div>'; $('#popbutton').popover({ animation: true, content: popupElement, html: true }); $('.btn-toggle').click(function () { $(this).find('.btn').toggleClass('active'); if ($(this).find('.btn-primary').size() > 0) { $(this).find('.btn').toggleClass('btn-primary'); } if ($(this).find('.btn-danger').size() > 0) { $(this).find('.btn').toggleClass('btn-danger'); } if ($(this).find('.btn-success').size() > 0) { $(this).find('.btn').toggleClass('btn-success'); } if ($(this).find('.btn-info').size() > 0) { $(this).find('.btn').toggleClass('btn-info'); } $(this).find('.btn').toggleClass('btn-default'); });

切换按钮可以工作,但是当我在弹出窗口中使用相同的按钮时,它不起作用。

请提出一种方法。

I have made a jsFiddle where i use twitter bootstrap toggle buttons & popover.

HTML:

<div class="btn-group btn-toggle"> <button class="btn btn-sm btn-info">On</button> <button class="btn btn-sm btn-primary active">Off</button> </div> <button id="popbutton" class="btn btn-lg btn-warn">pop up</button>

JS:

var popupElement = '<div class="btn-group btn-toggle"><button class="btn btn-sm btn- info">On</button><button class="btn btn-sm btn-primary active">Off</button></div>'; $('#popbutton').popover({ animation: true, content: popupElement, html: true }); $('.btn-toggle').click(function () { $(this).find('.btn').toggleClass('active'); if ($(this).find('.btn-primary').size() > 0) { $(this).find('.btn').toggleClass('btn-primary'); } if ($(this).find('.btn-danger').size() > 0) { $(this).find('.btn').toggleClass('btn-danger'); } if ($(this).find('.btn-success').size() > 0) { $(this).find('.btn').toggleClass('btn-success'); } if ($(this).find('.btn-info').size() > 0) { $(this).find('.btn').toggleClass('btn-info'); } $(this).find('.btn').toggleClass('btn-default'); });

The toggle button works, but when i use the same buttons inside a popover, it won't work.

Please suggest a method.

最满意答案

由于您的弹出式按钮在加载时不存在,因此您需要使用事件委派。 而不是size() (这是jQuery 1.8弃用的),你应该使用length属性:

$('body').on('click','.btn-toggle',function () { $(this).find('.btn').toggleClass('active'); if ($(this).find('.btn-primary').length > 0) { $(this).find('.btn').toggleClass('btn-primary'); } if ($(this).find('.btn-danger').length > 0) { $(this).find('.btn').toggleClass('btn-danger'); } if ($(this).find('.btn-success').length > 0) { $(this).find('.btn').toggleClass('btn-success'); } if ($(this).find('.btn-info').length > 0) { $(this).find('.btn').toggleClass('btn-info'); } $(this).find('.btn').toggleClass('btn-default'); });

更新小提琴

Since your popover buttons do not exist at load time you need to use event delegation. Also instead of size() (which is deprecated as of jQuery 1.8) you should use the length property:

$('body').on('click','.btn-toggle',function () { $(this).find('.btn').toggleClass('active'); if ($(this).find('.btn-primary').length > 0) { $(this).find('.btn').toggleClass('btn-primary'); } if ($(this).find('.btn-danger').length > 0) { $(this).find('.btn').toggleClass('btn-danger'); } if ($(this).find('.btn-success').length > 0) { $(this).find('.btn').toggleClass('btn-success'); } if ($(this).find('.btn-info').length > 0) { $(this).find('.btn').toggleClass('btn-info'); } $(this).find('.btn').toggleClass('btn-default'); });

Updated fiddle

更多推荐

本文发布于:2023-08-04 20:03:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1421998.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:弹出式   按钮   不起作用   窗口   内容

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!