如何在点击时调用函数

Posted

技术标签:

【中文标题】如何在点击时调用函数【英文标题】:How to call a function on click 【发布时间】:2015-07-29 10:56:48 【问题描述】:

我无法重新初始化某些代码。

我有一个插件的功能,我需要在点击时重新初始化。我上个月开始学习 JS 和 php,所以我仍然对操作我没有编写的代码感到不舒服。

这是我需要重新加载的代码,在 PHP 文件中找到:

/** $return FFGeneralSettings */
public function getGeneralSettings()
    return $this->generalSettings;


public function register_shortcodes()

    add_shortcode('ff', array($this, 'renderShortCode'));


public function renderShortCode($attr, $text=null) 
    if ($this->prepareProcess()) 
        $stream = $this->generalSettings->getStreamById($attr['id']);
        if (isset($stream)) 
            $settings = new FFStreamSettings($stream);
            if ($settings->isPossibleToShow())
                /*ob_start();
                include(AS_PLUGIN_DIR . 'views/public.php');
                $file_content = ob_get_clean();
                echo $file_content;*/
                ob_start();
                include(AS_PLUGIN_DIR . 'views/public.php');
                $output = ob_get_contents();
                ob_get_clean();
                return $output;
            
        
    

我想我会使用 javascript 重新初始化上述代码中的操作吗?我在下面制作的这个骨架是否走在正确的轨道上?

$(document).ready(function()
    $('a').on('click',function()
        //does the magic happen in here?
        );
);

感谢您的建议,到目前为止,我从你们那里学到了很多东西! 哦,另外,如果答案在 jQuery 中,我很好。

【问题讨论】:

你可以试试ajax .... 【参考方案1】:

“我有一个插件的功能,我需要在点击时重新初始化”

一切都取决于你希望这个函数做什么。您是否希望它产生一些输出以显示在您的页面上?你想让它只运行一个服务器端脚本吗?两者都需要你调用一个运行该 php 代码的 php 页面,这可能是 ajax 调用的形式,但是你对结果的处理方式会因你的目标而异。

要使用 jquery 进行 ajax 调用,请执行以下操作:

$(document).ready(function()
    $('a').on('click',function()

        // magic happens here!
        $.ajax(
            url: "yourfile.php",
            method: "get",
            success: function(result) 
                // do something with your result here
                console.log(result);
            ,
        );

    );
);

看起来你的代码会返回一些东西——所以上面的代码应该在success = function (result)部分做一些事情,这可能是将输出结果放入某个元素中。

【讨论】:

感谢您的快速回复!我正在使用 AJAX 异步加载插件,因此内容已经显示,但是,所有功能都被破坏了。并且这个 php 文件没有与插件的内容相关联,本质上是破坏了内容。所以我需要这样做,以便这个脚本识别新加载的内容。 .live() 会好吗?【参考方案2】:

如果您尝试从 Javascript 重新加载/重新运行 PHP 函数,您将需要创建一个 API 端点,您可以从 javascript 进行 http 调用,或者进行老式的页面刷新。如果这对您没有意义,请进一步研究 http 请求和响应的基础知识。

【讨论】:

嗯好吧,我会的 :) 并重新加载页面会破坏目的 ;) 我需要重新初始化该代码块,因为我正在执行的 AJAX 调用中的元素与它没有关联,因为它们被拉出在页面加载后

以上是关于如何在点击时调用函数的主要内容,如果未能解决你的问题,请参考以下文章

如何在页面加载时调用 JavaScript 函数?

在Jtable单元格中单击JComboBox时调用ActionPerformed

如何能避免在调用子类对象的虚函数时调用父类的虚函数呢?

未在代码中调用的函数在运行时调用

在 Bootstrap 模式中单击按钮时调用 JS 函数

如何在 AMX 页面加载时调用 Javascript 函数?