jQuery事件触发一次,然后再也不会触发
jQuery event fires once, then never again
我已经在一个简单的JQuery事件处理程序上挣扎了几个小时。我的事件处理程序只在页面加载时触发一次,无论事件或与选择框的交互如何,都不会再次触发。延迟时,警报(当我有一个时(显示第一个选择选项。否则,警报为空。
我想要的只是从 AJAX 加载选择框,以及用户选择触发另一个 AJAX 调用。
.HTML:
<select id="connection" name="Connection"></select>
<div id="testme" style="background: #CCC; width:100%; height:50px;position:relative;color:red">testing</div>
Javascript:
$(document).ready(function () {
// Event handler. Tried as a separate function and as a parameter to $.on(...)
function connectionSelected() {
var str = $('#connection option:selected').text();
alert(str);
$("#testme").text(str);
}
var $connectionSelect = $('#connection');
//$connectionSelect.selectmenu(); // Tried enabling/disabling
// Tried this and all JS code inside and outside of $(document).ready(...)
$.when(
$.ajax({
dataType: "JSON",
url: '@Url.Content("~/API/ConnectionHint")', // The AJAX call (using ASP Razor) works fine
success: function(data) {
// This function is always called and works
var items = [];
$.each(data, function(key, val) {
items.push("<option value='" + key + "'>" + val + "</option>");
});
$connectionSelect.append(items.join(""));
// Tried setting up the event handler here
},
error: function() {
$connectionSelect.html('<option id="-1">none available</option>');
}
})
).then(function() {
//$("#connection option").blur(connectionSelected()).change();
$("#connection").on("change", connectionSelected());
});
});
尝试了事件处理程序的数十种变体,几个事件,在 deferred.done 和 deferred.then 的内部和外部,例如:
$connectionSelect.selectmenu({
change: function (event, data) {
$('#connection').change(function () {
var str = "";
$('#connection').each(function () {
str += $(this).text() + "<br>";
});
$("#testme").text(str);
});
}
});
我通常编写后端代码,只熟悉 JQuery 的部分内容,这让我发疯。我已经在SO和其他地方查看了30多个相关问题,例如
- Jquery 事件触发一次
- Jquery .change(( 函数不适用于动态填充的 SELECT 列表
- http://jqueryui.com/selectmenu/#product-selection
任何想法都值得赞赏。
而不是
$("#connection").on("change", connectionSelected());
尝试
$("#connection").on("change", connectionSelected);
请注意,在第二个中,我通过引用传递函数处理程序,而不是调用它。
相关文章:
- 为什么这个脚本只工作一次?只替换元素一次,然后再也不替换
- 如何检测函数's窗口没有'我再也不存在了
- 其中是在ReactJS中放置一个值的最佳位置,该值由传入的初始参数计算一次,然后再也不会更改
- 多个 $(“selectort”).click (函数 () 如果然后构造不起作用
- jQuery事件触发一次,然后再也不会触发
- jQuery .fadeOut 然后等待,然后 .fadeIn 不起作用
- PubNub-曾经工作过但没有的代码'我再也不工作了
- 承诺然后函数不执行
- 使用Ajax在输入时提交Textarea,然后在不刷新整个页面的情况下呈现部分
- iOS 8 Bug-当设备从睡眠状态返回时,OnUpdateReady再也不会调用
- I'我试着只点击4次,然后就不起作用了,尽管我不确定自己做错了什么
- 小程序再也不能给家里打电话了
- 统计facebook上的评论再也不起作用了
- 从URL中删除哈希,以无哈希URL加载页面,然后在不重新加载页面的情况下向URL添加哈希
- 我不能添加信息到我的表在mysql.我使用javascript来显示信息消息,然后它不做任何事情
- 将表单输入存储在javascript变量中,然后在不提交表单的情况下将其值传递到php变量中
- 我如何防止触摸端事件明显是“;记住“;然后在不适当的时间开火
- 打开新的空白窗口,添加输入元素,然后向不工作的元素调度单击事件
- MongoDB - Mongoose -只能调用一次控制器的save方法.然后它就再也不存钱了
- 表单发送数据到控制器一次,然后它不工作