gpt4 book ai didi

javascript - $(document.body).on ('change' , '.someclass' , 函数 () {});不起作用

转载 作者:行者123 更新时间:2023-11-29 21:06:57 24 4
gpt4 key购买 nike

在我的应用程序中,我需要在将文件加载到 html 文件输入标记时触发一个 JQuery 函数。

下面给出的文件输入代码是引用文章http://www.jasny.net/bootstrap/javascript/#fileinput实现的.

<div class="fileinput fileinput-new" data-provides="fileinput">
<div class="fileinput-preview thumbnail" data-trigger="fileinput" style="width: 200px; height: 150px;"></div>
<div>
<span class="btn btn-default btn-file">
<span class="fileinput-new">Select image</span>
<span class="fileinput-exists">Change</span>
<input type="file" class="tenderImage">
</span>
<a href="#" class="btn btn-default fileinput-exists" data-dismiss="fileinput">Remove</a>
</div>
</div>

我需要一个在文件加载到输入元素时执行的函数。为此,我编写了以下代码。

$(document).ready(function(){
$(document.body).on('change','.tenderImage', function(){
alert("fired");
});
});

但是,上面的函数没有被执行。但是如果我用下面的方式写同样的东西,它就会被执行。

$(document).ready(function(){
$('.tenderImage').change(function(){
alert("fired");
});
});

前者不工作的原因可能是什么?由于以下问题中讨论的原因,我需要以这种方式实现该功能。

Jquery event handler not working on dynamic content

编辑

根据评论得到的信息修改了代码。信息是不使用原始的 Jquery 函数,而是使用我正在使用的库提供的函数。

还是不行。这是 JSFidle。 https://jsfiddle.net/Viraj_Gamage/2e4eochj/1/

最佳答案

使用 events from the plugin你正在使用(如评论中所述)

$(document.body).on("change.bs.fileinput", function() {
alert("changed");
});

如果您需要委托(delegate)事件,请使用 div.fileinput(或更准确地说:div.fileinput.fileinput-exists)作为选择器

$(document.body).on("change.bs.fileinput", "div.fileinput.fileinput-exists", function() {
alert("changed");
});

例子:

$(document.body).on("change.bs.fileinput", "div.fileinput.fileinput-exists", function(e) {
alert("changed");
});
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jasny-bootstrap/3.1.3/css/jasny-bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jasny-bootstrap/3.1.3/js/jasny-bootstrap.min.js"></script>
<div class="fileinput fileinput-new" data-provides="fileinput">
<div class="fileinput-preview thumbnail" data-trigger="fileinput" style="width: 200px; height: 150px;"></div>
<div>
<span class="btn btn-default btn-file">
<span class="fileinput-new">Select image</span>
<span class="fileinput-exists">Change</span>
<input type="file" class="tenderImage">
</span>
<a href="#" class="btn btn-default fileinput-exists" data-dismiss="fileinput">Remove</a>
</div>
</div>

或作为 fiddle

关于javascript - $(document.body).on ('change' , '.someclass' , 函数 () {});不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43558861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com