У меня есть 2 сценария jQuery - один, прежде чем я добавил .preventDefault и копию того же скрипта после добавления .preventDefault. JQuery работает в начальной, но не после того, как я добавить .preventDefault()jQuery .preventDefault();
Первоначальный сценарий, который работает
$(window).load(function(){
$(document).ready(function(){
$("span[id$='_ff5_1']").each(function() { //returns a collection of elements that must be iterated through using each
if ($(this).text() == "Yes") { //test value returned from non-input field
clearID();
$("tr.anon").hide();
} else {
$("tr.anon").show();
}
});
if ($("select[title='action']").val() == "") {
$("tr.actDet").hide();
}
$("select[title='organizationalElement']").focusout(function() {
if ($(this).val() === "I don\'t know") {
alert("If no organizational element is selected, additional time may be required to route this request");
} // close if
$("select[title='action']").change(function(){
$(".actDet").toggle($(this).val()!= "");
}); // close action.change
});//close select.focusout
}); // close doc.ready
}); // close window.load
скрипт, который не работает ...
$(window).load(function(){
$(document).ready(function(){
$("span[id$='_ff5_1']").each(function() { //returns a collection of elements that must be iterated through using each
if ($(this).text() == "Yes") { //test value returned from non-input field
clearID();
$("tr.anon").hide();
} else {
$("tr.anon").show();
}
});
if ($("select[title='action']").val() == "") {
$("tr.actDet").hide();
}
$("select[title='organizationalElement']").focusout(function() {
if ($(this).val() !== "I don\'t know") {
$(this).preventDefault();
} else {
alert("If no organizational element is selected, additional time may be required to route this request");
} // close if
$("select[title='action']").change(function(){
$(".actDet").toggle($(this).val()!= "");
}); // close action.change
});//close select.focusout-- close edit record stuff
}); // close doc.ready
}); // close window.load
Единственное изменение, которое я сделал является исходным оператором if, который становится if/else, который вызывает .preventDefault(). Первый скрипт отлично работает, но второй скрипт терпит неудачу. Зачем? Я вызываю метод .preventDefault(), если значение элемента организации равно idk в существующей записи.
: @ Андрей Чтобы уточнить на вашем редактировать ... Должен ли я пересмотреть мой сценарий: ...
if ($(this).val() !== "I don\'t know") {
$(this).click(function(e) { e.preventDefault(); });
} else {
alert("If no organizational element is selected, additional time may be required to route this request");
} // close if
... б/с я отметил TAHT он будет работать правильно, если я меняю $ (это) .preventDefault(); e.preventDefault();
Возможно, вы пытаетесь показать, как записать его, если я хочу приложить метод к объекту $ (this), как я его изначально написал?
Спасибо Адаму.Я знаю, что preventDefault не останавливает событие от пузырьков, однако я не уверен, что я не хочу пузыриться. Возможно, это остановило работу всего сценария jQuery? – jg100309
@ jg100309 - нет, ваша первоначальная проблема заключалась в том, что вы вызывали preventDefault для этого вместо объекта события. Передайте объект события вашему обработчику и вызовите preventDefault на * it *, как в моем ответе –
* Примечание стороны: вам не нужно скрывать символ '' ', если он находится между двумя символами' '' s. * – SeinopSys