2014-11-03 2 views
0

Как всегда большое спасибо за помощь заранее!Добавление Javascript e.preventDefault(); к скрипту

У меня есть набор скриптов, запущенных на странице, и у вас возникли проблемы с ними по умолчанию. Мне удалось исправить большинство из них с помощью e.preventDefault(); но просто не могу разобраться с этим, как его структурировать. Это может быть по утрам утром, идиотство с моей стороны, чтобы быть честным lol Это и очень зеленое с java-скриптом.

$(document.body).on('change', 'select#category-navbar', function() { 
$('.selected-value').text($(this).val()); 
}); 

Но любая помощь будет оценена по достоинству, так как мне просто нужно добавить e.preventDefault(); к этому сценарию, и все должно быть денди.

РЕДАКТИРОВАТЬ

Это сценарий, который появляется выше один, чтобы быть недобросовестным:

$(document).ready(function() { 

    $('.verdana').click(function(e) { 
    $('#changeMe').css('font-family','verdana'); 
    e.preventDefault(); 
}); 

    $('.arial').click(function(e) { 
    $('#changeMe').css('font-family','arial'); 
    e.preventDefault(); 
}); 

    $('.tahoma').click(function(e) { 
    $('#changeMe').css('font-family','tahoma'); 
    e.preventDefault(); 
}); 

    $('.times').click(function(e) { 
    $('#changeMe').css('font-family','times'); 
    e.preventDefault(); 
}); 

    $('.copperplatebold').click(function(e) { 
    $('#changeMe').css('font-family','copperplatebold'); 
    e.preventDefault(); 
}); 

    $('swiss721').click(function(e) { 
    $('#changeMe').css('font-family','swiss721'); 
    e.preventDefault(); 
}); 

    $('.baskerville').click(function(e) { 
    $('#changeMe').css('font-family','baskerville'); 
    e.preventDefault(); 
}); 

    $('.oldenglish').click(function(e) { 
    $('#changeMe').css('font-family','oldenglish'); 
    e.preventDefault(); 
}); 


    $('.timesnewroman').click(function(e) { 
    $('#changeMe').css('font-family','timesnewroman'); 
    e.preventDefault(); 
}); 

    $('.castellar').click(function(e) { 
    $('#changeMe').css('font-family','castellar'); 
    e.preventDefault(); 
}); 

    $('.calibri').click(function(e) { 
    $('#changeMe').css('font-family','calibri'); 
    e.preventDefault(); 
}); 

    $('.scriptmtbold').click(function(e) { 
    $('#changeMe').css('font-family','scriptmtbold'); 
    e.preventDefault(); 
}); 
$('.lucidacal').click(function(e) { 

    e.preventDefault(); 
}); 

// select font in dropdown list to change font-family of #changeMe 
$('select').change(function() { 
    if($(this).val() == "Default font"){ 
     $('#changeMe').css('font-family',""); 
    }else{ 
     $('#changeMe').css('font-family',$(this).val()); 
    } 

}); 

e.preventDefault(); });

+1

В чем вопрос? – Cristy

+0

Извините, если я не был чист. Мне нужно добавить e.preventDefault(); для этого сценария, чтобы остановить его по умолчанию других параметров на моей странице. Я не уверен, как структурировать его, чтобы заставить его работать. Спасибо за ваш отзыв Cristy :-) – MattLuka

ответ

1

Вы имеете в виду это?

$(document.body).on('change', 'select#category-navbar', function(e) { 
    $('.selected-value').text($(this).val()); 
    e.preventDefault(); 
}); 
+0

К сожалению, это не сработало. Может быть, это не проблема, хотя я не могу придумать что-нибудь еще. – MattLuka

+0

Как насчет e.stopPropagation()? –

+0

все еще не радость с e.stopPropagation() :-(Я должен сказать, что меня больше всего смущает вопрос о том, что происходит. Добавляя e.preventDefault(), ко всем остальным сценариям это поведение прекратилось, но я просто не могу его разорвать. – MattLuka

2

Вы должны прочитать больше на docs

.Кнопкой ([данныеСобытия], обработчик)

обработчика: Тип: Function (Event объектСобытия)

$(document.body).on('change', 'select#category-navbar', function(e) { // add event 
    e.preventDefault(); // add prevent default 
    $('.selected-value').text($(this).val()); 
}); 
+0

Большое спасибо за это, и чтение особенно полезно. Это, к сожалению, не остановило нежелательное поведение. Возможно, я подкрадывался к неправильному дереву – MattLuka

+0

Возможно, вы могли бы реплицировать свою проблему в [скрипке] (http: // jsfiddle.com), и у вас будет больше шансов на отладку. Что вы не хотите исполнять? –

+0

А хороший план Я сделаю это сейчас и напишу вам ребята ссылку – MattLuka

0

Вы должны добавить объект события внутри своей функции.

$(document.body).on('change', 'select#category-navbar', function(event) { 
    $('.selected-value').text($(this).val()); 
    event.preventDefault(); 
}); 
+0

Спасибо за вашу помощь OG! Это, к сожалению, не сработало, поэтому я задаюсь вопросом, есть ли у меня проблемы в другом месте, поэтому мне придется проверить все. Хотя это только сценарий, сброс другого по умолчанию. – MattLuka

0

e.preventDefault() stops the browser from performing the default action, but lets the event propagate to all event handlers

Если вы хотите, чтобы остановить другие обработчики событий работает, вы можете вызвать e.stopPropagation() или e.stopImmediatePropagation() в зависимости от ситуации.

Это небольшая опасность hap, хотя, поскольку она будет зависеть от того, какие элементы вы связали слушателю событий, и в каком порядке они были связаны.

+0

Ах, это интересно, много спасибо Натан. Я попробую разместить их и посмотреть, какие результаты я получу. – MattLuka

+0

По-прежнему нет радости ни с одним из них :-(Я продолжаю заливать код, но никаких подсказок пока нет! – MattLuka

Смежные вопросы