#javascript #jquery
#javascript #jquery
Вопрос:
Ребята, я написал подобный код в теге script моей веб-страницы
window.reset = function (e, elementId) {
e.wrap("<form>").closest("form").get(0).reset();
$(elementId).attr("src", " ").width(30).height(30);
e.unwrap();
};
window.a = function (e, elementId) {
e.wrap("<form>").closest("form").get(0).reset();
$(elementId).attr("src", " ").width(30).height(30);
e.unwrap();
};
Обе функции выполняют одну и ту же работу. Но проблема в том, что функция сброса не вызывается при нажатии, а вызывается функция «a»
Я имел в виду:
Это кнопка, которая вызывает функцию сброса. Таким образом, сброс не вызывается
<button type="button" id="img-refresh" class="btn btn-secondary" data-dismiss="modal"
onclick="reset($('#image'), '#img-show');"
> Refresh </button>
Таким образом, вызывается метод ‘a’.
<button type="button" id="img-refresh" class="btn btn-secondary" data-dismiss="modal"
onclick="reset($('#image'), '#img-show');"
> Refresh </button>
Когда я заменяю «сброс» на «a», он работает.
Может кто-нибудь сказать мне, в чем проблема?
Несмотря на то, что я меняю ее следующим образом
window.customFunction = {
reset: function (e, elementId) {
e.wrap("<form>").closest("form").get(0).reset();
$(elementId).attr("src", " ").width(30).height(30);
e.unwrap();
},
};
и используйте ее так, она не работает
<button type="button" id="img-refresh" class="btn btn-secondary" data-dismiss="modal"
onclick="customFunction.reset($('#image'), '#img-show');"
> Refresh </button>
Комментарии:
1. Почему
onclick="reset($('#image'), '#img-show');"
, когда есть jQuery?2. Я вас не понял. Не могли бы вы, пожалуйста, более четко
Ответ №1:
Я предполагаю, что reset
это зарезервированное слово window
, контекст … или, может быть, другой скрипт из вашего vendros перезаписывает вашу функцию
Мой первый вопрос… почему вы так объявляете свои функции?
Я могу предложить 2 варианта :
Вы могли бы использовать простое объявление функции вместо window.reset
того, что вы сделали
function reset() {
// do stuff
}
А затем использовать ее точно так же, как вы уже делали?
или
Если вы явно хотите, чтобы это было в window
контексте, используйте родительский ключ, чтобы убедиться, что вы не перезаписали другие функции, а какой-либо внешний скрипт не перезаписал ваш…
window.myCustonFunction = {
reset: function() { },
a: function() { }
}
Комментарии:
1. Эй, я пытался следовать второму методу. Но это не сработало
2. Взгляните на РЕДАКТИРОВАНИЕ