Javascript только один раз выстрелил

Давний затаившийся здесь задает мои первые публичные вопросы, потому что я действительно застрял.

Я работаю на платформе с корзиной покупок, поэтому у меня есть доступ только для добавления кода в определенные назначенные элементы. У меня есть код javascript, который я вызываю извне (потому что встроенный - это плохо, если нет необходимости, верно?)

Так что моя проблема в том, что есть <select> выпадающий список, который я НЕ имею прямого доступа для изменения HTML, и глупая платформа корзины покупок не дала ему идентификатор, только атрибут 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 ответа

Решение

Я до сих пор не смог использовать name атрибут для вызова функции, поэтому я нашел способ обойти это с помощью id из td ShippingSpeedChoice выпадающий был в:

    $("#DisplayShippingSpeedChoicesTD").change(function(e) {
        $("#result_div").empty();

И это срабатывает каждый раз сейчас. Большое спасибо за ваши отзывы и помощь - я все еще хотел бы выяснить, как использовать name атрибут, а не id, но это будет загадкой для другого дня!

Если вы хотите, чтобы что-то происходило при каждом нажатии элемента, используйте .click() скорее, чем .change(), Последний срабатывает только в том случае, если они выбирают в меню другое значение, чем оно было раньше.

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

Прежде всего, я бы, вероятно, попытался настроить корзину выбора, чтобы иметь идентификатор.

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

затем попробуйте связать функцию "change" с элементом через его id.

$('#shopping_cart_select').bind('change', function(){
//rest of code goes here
}
Другие вопросы по тегам