首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何更改由单击函数添加的img src?

如何更改由单击函数添加的img src?
EN

Stack Overflow用户
提问于 2018-06-29 18:42:11
回答 1查看 41关注 0票数 0

我想改变变量var ajax_loader = jQuery('<img class="fl-spinner" width="16" heigth="16" src="' + fl_mc_settings.fl_spinner + '" />');的外部添加的_.js,这是我不能更改,删除等。

代码语言:javascript
运行
复制
jQuery(document).ready(function() {
    jQuery(document).on("click", ".fl_click_switcher a", fl_switch_currency_handler)
});
var fl_switch_currency_handler = function(event) {
    event.preventDefault();
    if (jQuery(this).is(":disabled") || jQuery(this).parent().hasClass("fl-cs-active-currency") || jQuery(this).hasClass("fl-cs-active-currency")) {
        return false
    } else {
        jQuery(this).off(event)
    }
    fl_load_currency(jQuery(this).attr("rel"))
};
function fl_load_currency(currency, force_switch) {
    var ajax_loader = jQuery('<img class="fl-spinner" width="16" heigth="16" src="' + fl_mc_settings.fl_spinner + '" />');
    jQuery(".fl_click_switcher").append(ajax_loader);
    if (typeof force_switch === "undefined")
        force_switch = 0;
    jQuery.ajax({.........
  • 是否有办法覆盖上面提到的变量,而其他的原始函数不受影响?
  • 或者:如何覆盖变量html输出-以防在onclick函数之后添加输出?

谢谢你

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 18:51:00

最简单的解决方案必须是将fl_mc_settings.fl_spinner = "new-image.jpg";添加到脚本中(确保它在spinner之后加载)

使用它,可以简单地覆盖用作旋转器的映像。

例如。

代码语言:javascript
运行
复制
<script src="path-to-spinner.js"></script>
<script>
    fl_mc_settings.fl_spinner = "new-image.jpg";
</script>

根据评论更新

当图像源被注入到HTML片段中时,下面是一个使用imgonload事件的技巧。

它所做的就是也将onload="wrap_img(this);"注入到img标记中,当图像被插入并加载时,事件就会触发,然后我们就可以在这里使用jQuery的.wrap()方法将图像包装在例如div中。

代码语言:javascript
运行
复制
var fl_spinner = 'http://placehold.it/200x100/" onload="wrap_img(this);"';
var ajax_loader = '<img class="fl-spinner" width="160" heigth="160" src="' + fl_spinner + '" />';

function wrap_img(img) {
  $(img).wrap( "<div class='spinner_wrapper'></div>" );
}

document.body.innerHTML = ajax_loader;
代码语言:javascript
运行
复制
.spinner_wrapper {
  display: inline-block;
  background: red;
  padding: 20px;
}
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

在你的例子中,它可能看起来像这样

代码语言:javascript
运行
复制
<script src="path-to-spinner.js"></script>
<script>
    fl_mc_settings.fl_spinner = 'new-image.jpg" onload="wrap_img(this);"';

    function wrap_img(img) {
      jQuery(img).wrap( "<div class='spinner_wrapper'></div>" );
    }
</script>
<style>
    .spinner_wrapper {
      display: inline-block;
      background: red;
      padding: 20px;
    }
</style>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51107695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档