Javascript只触发一次

时间:2013-12-20 03:48:26

标签: javascript jquery html name-attribute

长期潜伏在这里问我的第一个公开问题,因为我真的被困住了。

我正在使用托管购物车平台,因此我只能访问某些指定div中的代码。我有一个我在外面调用的javascript代码(因为内联是坏的,除非你必须,对吗?)

所以我的问题是,有一个<select>下拉列表,我没有直接访问权限来更改HTML,而且愚蠢的购物车平台没有给它一个id,只设置了name属性。

我需要在点击<div id="result_div">下拉列表时清除<select name="ShippingSpeedChoice">,所以我有:

$("[name=ShippingSpeedChoice]").change(function(e) { $("#result_div").empty(); });

它会发射一次,但就是这样。我的问题是,如何点击<select name="ShippingSpeedChoice">每次点火?

这是所有相关的javascript(如果它阻止#result_div在某处清除):

    $("[name=ShippingSpeedChoice]").change(function(e) {
        $("#result_div").empty();
    });

    $("#btn_calc").click(function(e) {      /// onclick on Calculate Delivery Date button

在此先感谢,任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:1)

如果您希望每次点击元素时都要发生某些事情,请使用.click()而不是.change()。后者只有在从菜单中选择与之前不同的值时才会触发。

$("[name=ShippingSpeedChoice]").click(function(e) { $("#result_div").empty(); });

答案 1 :(得分:1)

首先,我可能会尝试设置购物车选择具有ID。

$("[name=ShippingSpeedChoice]").id = 'shopping_cart_select';

然后尝试通过它的id将“change”函数绑定到元素。

$('#shopping_cart_select').bind('change', function(){
//rest of code goes here
}

答案 2 :(得分:0)

我仍无法使用name属性来调用该函数,因此我使用id td的{​​{1}}找到了解决方法的方法。下拉列入:

ShippingSpeedChoice

现在每次都会发射。非常感谢你的所有反馈和帮助 - 我仍然希望我能弄清楚如何使用 $("#DisplayShippingSpeedChoicesTD").change(function(e) { $("#result_div").empty(); 属性而不是name,但这将是另一天的难题!