JQuery on("change"...) 方法在 Plunker 中不起作用
JQuery on("change"...) method not working in Plunker
我创建了 this Plunk to demonstrate and discuss a shopping cart I'm developing that is in action here(当它持续时)。
在 "real" 中,选择一个物种填充 Variety drop-down。但是,它在 Plunk 中不起作用。
事实上,$('#species-select').on('change', ...
从未开火。
一定是 Plunks 工作方式的一些特殊性。任何 suggestions/workarounds?
编辑
只是为了添加一些东西——在 "real" 版本中,我在页面底部加载了 javascript。 Plunker 不喜欢这样。我可以通过添加到 header 来创建解决方法:
<script type='text/javascript'>
$(document).ready(function(){
$('#species-select').on('change', function() {
var variety_key = $('#species-select').val();
console.log( "species changed to " + variety_key);
alert( "species changed to " + variety_key);
$('#variety-select').empty();
fillVarietiesList(variety_key);
});
});
</script>
http://plnkr.co/edit/91FYs44DuLkS19YPLzd6?p=info
进一步更新
这仍然不太奏效,因为我无法将商品添加到购物车。我发现这很有效:
<script type='text/javascript'>
$(document).ready(function(){
$.getScript('products.js');
$.getScript('fill_selects.js');
$.getScript('shopping_cart.js');
$('#species-select').on('change', function() {
var variety_key = $('#species-select').val();
console.log( "species changed to " + variety_key);
alert( "species changed to " + variety_key);
$('#variety-select').empty();
fillVarietiesList(variety_key);
});
});
</script>
这是因为当 jQuery 运行时它会将事件挂接到 dom 不存在的元素上,因此它没有任何可附加的东西。这可以通过将挂钩切换到 'on' 事件来解决:
$(document).on('change','#species-select', function...
我希望这是有道理的。
我创建了 this Plunk to demonstrate and discuss a shopping cart I'm developing that is in action here(当它持续时)。
在 "real" 中,选择一个物种填充 Variety drop-down。但是,它在 Plunk 中不起作用。
事实上,$('#species-select').on('change', ...
从未开火。
一定是 Plunks 工作方式的一些特殊性。任何 suggestions/workarounds?
编辑 只是为了添加一些东西——在 "real" 版本中,我在页面底部加载了 javascript。 Plunker 不喜欢这样。我可以通过添加到 header 来创建解决方法:
<script type='text/javascript'>
$(document).ready(function(){
$('#species-select').on('change', function() {
var variety_key = $('#species-select').val();
console.log( "species changed to " + variety_key);
alert( "species changed to " + variety_key);
$('#variety-select').empty();
fillVarietiesList(variety_key);
});
});
</script>
http://plnkr.co/edit/91FYs44DuLkS19YPLzd6?p=info
进一步更新 这仍然不太奏效,因为我无法将商品添加到购物车。我发现这很有效:
<script type='text/javascript'>
$(document).ready(function(){
$.getScript('products.js');
$.getScript('fill_selects.js');
$.getScript('shopping_cart.js');
$('#species-select').on('change', function() {
var variety_key = $('#species-select').val();
console.log( "species changed to " + variety_key);
alert( "species changed to " + variety_key);
$('#variety-select').empty();
fillVarietiesList(variety_key);
});
});
</script>
这是因为当 jQuery 运行时它会将事件挂接到 dom 不存在的元素上,因此它没有任何可附加的东西。这可以通过将挂钩切换到 'on' 事件来解决:
$(document).on('change','#species-select', function...
我希望这是有道理的。