Php jQuery无法更改引导';s数据放置
我发现了一只虫子。 jQuery似乎无法在呈现HTML后更改其弹出框的数据位置 示例时间:Php jQuery无法更改引导';s数据放置,php,jquery,html,twitter-bootstrap,Php,Jquery,Html,Twitter Bootstrap,我发现了一只虫子。 jQuery似乎无法在呈现HTML后更改其弹出框的数据位置 示例时间: $('[data-toggle=popover],[rel=popover]').popover(); <? if (isset($labels) && $labels): ?> <div id="<?= $id ?>" class="product-labels leak-image-click"> <? foreach($
$('[data-toggle=popover],[rel=popover]').popover();
<? if (isset($labels) && $labels): ?>
<div id="<?= $id ?>" class="product-labels leak-image-click">
<? foreach($labels as $label): ?>
<a class="product-label cursor-pointer" data-label="<?= $label ?>" tabindex="0" data-toggle="popover" role="button" data-trigger="focus" <?= $label == "soldout" ? "data-soldout-target='".$soldout."'" : "" ?>>
</a>
<? endforeach ?>
</div>
<? endif ?>
labels.init = function(id) {
$('#' + id).children(".product-label").each( function() {
var labelName = $(this).data("label"),
placement = meventi.getViewSize() == "xs" ? "right" : "top",
options = {
"placement": "top"
};
$(this).attr("data-content", labels.descriptions[$(this).data("label")]);
$(this).addClass("product-label-" + labelName );
$(this).attr("data-placement", "left");
$(this).popover(options).popover("show");
$(this).click(function(e){
$(e.target).popover("show");
});
});
};
当查看Chrome开发者工具中的HTML元素时,我可以看到该元素的内容为data placement=“top”
,但是popover仍然显示在左侧,就像它最初设置的一样“doge”没有找到类,您需要“.doge”
试着改变
$("doge").attr("data-placement", "top");
到
当然,如果您输入了一个错误,并且没有附加处理程序,那么这是行不通的
$(document).ready(function(){
$(".doge").attr("data-placement", "top");
});
还可以通过jQuery方法编辑数据属性: 明白了 使用
$('[data toggle=popover],[rel=popover]')全局启动所有popover。popover()必须在声明数据放置$(this.attr(“数据放置”,“左”))后调用代码>
更改数据内容,如meventi.labels.descriptions[$(this.data(“label”))
和其他数据可以在$('[data toggle=popover],[rel=popover]')之后调用代码>所以您将纯JS注入纯PHP,好吗。这是一个语法错误。你有没有试过.data(“placement”,“top”)代码>?请参阅下面给出的答案$(“doge”)
到$(“.doge”)
您是否碰巧使用了Symfony?对于append_slot()和end_slot(),我找不到任何与jQuery相关的内容,似乎是这样的;Symfony,除非它们是自定义函数。如果您想在jQuery中追加,据我所知,它是.append()
。您可能需要为您的问题显示更多的代码,因为从目前的情况来看,它在当前状态下几乎无法回答。发布更多的代码,或者制作一个JSFIDLE。你不也需要一个数据切换=“popover”
以便BS/JS知道它在处理什么吗?我会去掉“Try something:”;-)让我们都希望它是一个丢失的点,不是一个坏的粘贴。@Fred ii-我同意。:)OP刚刚用丢失的点更新了他们原来的帖子。现在,为什么我的蜘蛛会感到刺痛?原因不是
。我的问题是,当加载页面时,html中的数据位置发生了变化,但popover仍然按照最初设置的方向创建,“left”$(“.doge”).attr(“数据位置”,“顶部”)代码>已被尝试。正如我多次指出的,打字错误只与这个问题的写作有关,当页面加载时,HTML元素中的数据位置正在改变。如果我输入了错误或没有附加处理程序,这是不可能的。
不是原因,但感谢您的发现。我的问题是,当加载页面时,html中的数据位置发生了变化,但popover仍然按照最初设置的方向“左”创建。数据(“位置”,“顶部”)根本不会改变html,但attr(“数据位置”,“顶部”);将至少显示数据放置更改,即使弹出框仍显示在左侧。
$(".doge").attr("data-placement", "top");
$(document).ready(function(){
$(".doge").attr("data-placement", "top");
});
$(".doge").data("placement", "top");