我有一个简单的选择框,在更改时会出现一个简单的多平面问题并显示结果。
问题是,一旦你选择了列表中的每个选项,当它点击两次相同的选项时它就不起作用。
$('select#price-list').change(function () {
var length = $(this).find('option:selected').data("length");
var price = $(this).find('option:selected').data("price");
var total = price * length;
$('#price-shared').html(price);
$('#price-shared-total').html(total);
});
$(function () {
$("#price-list").selectbox();
});
这是一个小提琴:http://jsfiddle.net/defonic/xc39V/
发现问题:原来它在插件本身内,
更改:
$(target).find("option[value='" + value + "']").attr("selected", TRUE);
致:
$(target).find("option[value='" + value + "']").prop("selected", TRUE);
答案 0 :(得分:0)
如果你没有真正改变选择框中的选择,我很确定没有触发更改事件。如果你将功能连接到click事件,它应该工作。 因此,如果您将其更改为:
$('select#price-list').click(function () {...
我希望这会有所帮助。
答案 1 :(得分:0)
您的代码很好,但您使用的是错误的事件!更改仅在选择的值为CHANGING时触发。因此,如果您希望每次用户从select中选择任何内容(即使是相同的值)时触发事件,请使用click事件!
答案 2 :(得分:0)
$('select#price-list').on('change click',function () {
var length = $(this).find('option:selected').data("length");
var price = $(this).find('option:selected').data("price");
var total = price * length;
$('#price-shared').html(price);
$('#price-shared-total').html(total);
});
$(function () {
$("#price-list").selectbox();
});
这应该有效!