我一直试图解决这个问题已经有一段时间了,现在我真的没有选择了。我正在使用jQuery,MVC并且有一个ajax调用,它基本上会检索一些我想在Bootstrap popover
中显示的数据。
现在,这部分代码在一个视图中完美运行,但在另一个页面中,此代码拒绝执行任何操作。现在我不知道错误是在jQuery还是bootstrap中。
我有一个popover,我想动态更改其data-content
。当我调试它时,正在检索Data IS,因此问题出在jQuery中。
$(".test").mouseover(function () {
cell = $(this).attr("data-val");
$.ajax({
url: '/Input/GetExpenditureEntityCell',
data: { CellID: cell },
success: function (data) {
debugger;
alert(data.xID + "x" + data.yID + "\n" + data.value)
$("#" + data.xID + "x" + data.yID).addClass("hasComment");
$("#" + data.xID + "x" + data.yID).attr('data-content', data.value);
}
});
});
这就是我打电话的地方。
<a href="#" data-trigger="hover" data-toggle="popover" data-val="2503x2510" data-target="#expModal" class="btn btn-default btn-block btn-lg value test" id="2#2">
1)基本上我喜欢电子表格单元格,其中每个都有ID,在悬停时我想要检索该特定单元格的数据。我尝试了多种方法,destroy
,依此类推。
2)我首先尝试在data-content
中设置一些静态文本,但每当我尝试更改它时,它都不会改变(例如,保持&#39;你好&#39;)。在控制台中,没有错误。
请帮忙吗?
答案 0 :(得分:1)
您的元素有id="2#2"
,但您的选择代码为$("#" + data.xID + "x" + data.yID)
。我不知道这些值是什么,但不管是不会产生2#2
。在某处您需要x
而不是#
,反之亦然。
我还应该注意,CSS ID选择器不允许以字面数字开头。也就是说,选择器#2x2
和#2#2
都是无效的。如果您在$()
中使用自己,jQuery会接受它们,因为它会将它们转换为document.getElementById
次调用,但它们无效,如果您将它们合并将无效任何事情($("#2x2 span")
将失败,例如)。
如果您要使用CSS ID选择器,最好以非数字开头。如果你不能,那么使用属性选择器语法使其有效而不会进入复杂的转义:$('[id="#2x2"]')
。