如何更改单击功能添加的img src?

时间:2018-06-29 18:42:11

标签: javascript image src

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

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({.........
  • 有没有办法覆盖上面提到的变量,而其余的原始功能保持不变?
  • or:如何覆盖变量html输出-如果在onclick函数之后添加了输出?

谢谢

1 个答案:

答案 0 :(得分:1)

最简单的解决方案必须是将 String eTitle = doc.select("div.col-sm-12 > h1").text(); //I'm assuming you are trying to fetch the title text. Elements eBody = doc.select("div.col-sm-12 > p , ol"); //This CSS selector will limit the 'p' elements to this div alone. for (Element body : eBody) { //work with the 'body' element here. 添加到脚本中(确保它在微调js之后加载)

使用它可以简单地覆盖用作 spinner

的图像

例如

type Agent {
    id: ID!
    name: String
}

type Author {
    id: ID!
    firstName: String
    middleInitial: String
    lastName: String
    posts: [Post]
    agent: Agent
}

// Query
 {
   authors {
     firstName
     lastName
     agent {
         name
      }
    } 
  }

根据评论进行了更新

将图像源注入HTML片段时,这是使用fl_mc_settings.fl_spinner = "new-image.jpg";的{​​{1}}事件的技巧。

它的作用还在于将<script src="path-to-spinner.js"></script> <script> fl_mc_settings.fl_spinner = "new-image.jpg"; </script> 注入到img标记中,并且当插入图像并加载图像时,事件触发,然后可以用jQuery的方法完成onload方法,将图像包装在例如onload="wrap_img(this);"

img
.wrap()
div


在您的情况下,它可能看起来像这样

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;