Javascript 作为jquery选择器的字符串和变量串联是';不起作用。可能的原因是关闭
我在调整。对于原始方法,在js文件中,我在面板中添加了引导accordion listenerJavascript 作为jquery选择器的字符串和变量串联是';不起作用。可能的原因是关闭,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我在调整。对于原始方法,在js文件中,我在面板中添加了引导accordion listenershow.bs.collapse: TabCollapse.prototype._createAccordionGroup = function(parentId, $heading){ var tabSelector = $heading.attr('data-target'), active = $heading.data('bs.tabcollapse
show.bs.collapse
:
TabCollapse.prototype._createAccordionGroup = function(parentId, $heading){
var tabSelector = $heading.attr('data-target'),
active = $heading.data('bs.tabcollapse.parentLi').is('.active');
if (!tabSelector) {
tabSelector = $heading.attr('href');
tabSelector = tabSelector && tabSelector.replace(/.*(?=#[^\s]*$)/, ''); //strip for ie7
}
var $tabPane = $(tabSelector),
groupId = $tabPane.attr('id') + '-collapse',
$panel = $(this.options.accordionTemplate($heading, groupId, parentId, active));
$panel.find('.panel-heading > .panel-title').append(this._tabHeadingToPanelHeading($heading, groupId, parentId, active));
$panel.find('.panel-body').append($tabPane.contents().detach())
.data('bs.tabcollapse.tabpane', $tabPane);
$("#"+groupId).on('show.bs.collapse', function () {
console.log("show");
});
return $panel;
};
添加的行:
$("#"+groupId).on('show.bs.collapse', function () {
console.log("show");
});
我闻到了关闭的问题,但我不能完全指出它。那么它在哪里呢?它不起作用的唯一原因可能是,自定义事件没有映射到这些元素,或者事件触发没有正确发生(实际原因未知) 但是从代码、注释和你想要达到的(据我所知)来看,当你打开一个手风琴标签时,你需要做些什么。因此,我认为您可以通过使用给定的API来实现这一点,而不是对其进行调整。简单的代码如下所示:
$(document).on("shown.bs.collapse",".panel-collapse",function(e){
$(".panel-heading").css({"background-color": ""});
$(e.currentTarget).closest(".panel").find(".panel-heading").css({"background-color":"red"});
});
这是一把小提琴:
更新:
我尝试了这个调整,并设法让它以某种方式工作,而不是直接使用$(“#”+groupId)
,我这样使用它:
$(document).on("shown.bs.collapse","#"+groupId,function(e){
console.log(e);
});
小提琴:
希望对您有所帮助您知道groupId的价值吗?有任何控制台错误吗?没有,没有任何控制台错误。是的,我记录了,它是非空值。如果我硬编码值而不是groupId,它会工作。您通常可以为
$('#'+groupId)
记录一些内容吗?如果是这样,则可能是事件没有按预期触发。是否已尝试将硬编码值指定给groupId
变量,然后重试?我认为变量中有一些无效字符,请尝试修剪它,然后使用。我没有发现代码中有任何问题。。。。下面是一个简单的例子:我能想到的第一个原因是它是show.bs.collapse
,而不是show.bs.collapse
。我认为,$(“#”+groupId)
可能适用于上述事件。只要测试一下,看看它是否有效。