How can I locate the tag which calls a JQuery script, when the tag is dynamically loaded, so won't be the last tag on the page?
我正在使用 MagicSuggest自动建议库。我想根据它们的内容为某些建议的项目提供不同的背景颜色,我目前正在这样做,方法是在标签内添加 JQuery,我将其添加到返回的字符串中,以在选择 div 中呈现。然后,为了获得建议项目的 div,我基本上需要获得标签的 parent(),并更改它的 css() 属性。但是我怎样才能得到这个当前的脚本标签呢?
我目前为每个新标签分配了一个通过递增 JS 变量生成的 ID - 这可行,但不是很“好”!无论如何我可以直接用 JQuery 定位标签吗?
如果它可能更清楚,这是我当前的 selectionRenderer 函数。
selectionRenderer: function(a){
var toRet = a.english;
var blueBgScript = "<script id=ft" + freeTextFieldID + ">$('#ft" + freeTextFieldID + "').parent().css('background', 'blue');</script>"
if(a.id==a.english){
toRet += blueBgScript;
freeTextFieldID++;
}
return toRet;
},
最佳答案
为什么不在 afterrender
事件中添加一些代码呢?添加一些标签来标记需要不同背景的选项,然后检测父级并添加一个类(或编辑 bg 属性)或任何你喜欢的:
var newMS = $('#idStr').magicSuggest({
data: 'states.php',
displayField: 'english',
valueField: 'id',
selectionRenderer: function(a){
var toRet = a.english;
if(a.id==a.english) toRet = "<span class='freetext'>" + toRet + "</span>";
return toRet;
},
});
$(newMS).on('selectionchange', function(event,combo,selection){
var selDivs = $(event.target._valueContainer[0].parentNode).children('div'); //Get all the divs in the selction
$.each(selDivs,function(index,value){ //For each selected item
var span = $(value).children('.freetext'); //It if contains a span of class freetext
if(span.length == 1) $(value).css('background','blue'); //Turn the background blue
});
关于javascript - JQuery 在动态加载时调用 <script> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17239201/