javascript - JQuery 在动态加载时调用 <script> 标签

标签 javascript jquery magicsuggest

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 在动态加载时调用 &lt;script&gt; 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17239201/

相关文章:

javascript - 使用 Lodash 编写一个返回函数的函数,该函数在其中使用函数

javascript - 表格内用于删除行元素的按钮

javascript - 如何使用 JS 为 Font Awesome 图标制作动画?

java - PHP-Dojo 与 Java 的大型应用程序对比

javascript - 将焦点放在魔术提示输入元素上

javascript - CKEditor instanceReady 无法在 Eclipse Nebula 中工作

javascript - jQuery:如何使用 "$"而不是 "jQuery"?

javascript - 页面呈现时显示无失败

javascript - MagicSuggest:选择项目后重定向