【问题标题】:Executing javascript code upon the load (and inside) of a javascript Modalbox在加载(和内部)javascript Modalbox 时执行 javascript 代码
【发布时间】:2010-10-15 17:16:38
【问题描述】:

我真正想做的是让我的 script.aculo.us 自动完成器在我的表单加载到 Modalbox 对象中时工作。

当然,我在独立加载表单时尝试了我的自动完成程序,它可以按预期工作。作为参考,这是我加载该功能的 JS 代码:

Event.observe(window, 'load', function() { 
new Ajax.Autocompleter("gl_name", "autocomplete_choices", "<? echo WEB_ROOT . $page_name; ?>?action=ajax_autocomplete", {
    paramName: "value",
    minChars: 2,
    indicator: 'indicator1',
    afterUpdateElement: getSelectionIdGL
    });
});

然后我的 Autocompleter div 和指示器出现在我的 html 正文的末尾:

<span id="indicator1" style="display: none">
    <img src="/images/spinner.gif" alt="Working..." />
</span>
<div id="autocomplete_choices" class="autocomplete"></div>

我还使用 evalScripts: true 调用了 Modalbox()。

所以我基本上知道我的问题出在哪里:我希望在加载表单时创建我的自动完成程序,但是在编写脚本时已经加载了“窗口”对象,因为它与调用页面基本上是同一个窗口.

也就是说,老实说,我不知道它可以实际触发哪个事件。我什至不知道它是否真的可能,但我当然希望它是。

所以..就是这样。我不知道还有什么要补充的。如果您需要对我的问题进行任何澄清,请不要犹豫。

【问题讨论】:

    标签: javascript ajax prototypejs scriptaculous autocomplete


    【解决方案1】:

    你知道modalbox的callback functions吗? 您可以使用 afterLoad 来创建自动完成器。

    【讨论】:

    • 哦!刚写完我自己的答案就看到了你的答案。毕竟,回调确实被证明是解决方案。非常感谢:)
    【解决方案2】:

    好吧,看来我终于可以回答我自己的问题了。

    我将我的 Autocompleter 创建包含在一个函数中:

    makeAutocompleters = function() {
    
    new Ajax.Autocompleter("ass_name", "autocomplete_choices", "<? echo WEB_ROOT . $page_name; ?>?action=ajax_autocomplete", {
        paramName: "value",
        minChars: 2,
        indicator: 'indicator1',
        afterUpdateElement: getSelectionIdAss
        });
    }
    

    然后在我的 ModalBox() 调用中,我添加了“afterLoad”回调参数:

    onclick="Modalbox.show(this.href, {title: this.title, width: 470, evalScripts: true, afterLoad: function() { makeAutocompleters(); }}); return false;"
    

    然后它起作用了:D

    所以,对于遇到同样问题的其他人来说,就是这样。

    马修

    【讨论】:

    • 看起来你的速度更快。是的,这是要走的路。
    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 2020-08-15
    相关资源
    最近更新 更多