2014-11-03 50 views
0

一如既往非常感谢提前的帮助!Javascript adding e.preventDefault();以脚本

我有一组脚本运行在一个页面上,并且一直在与他们相互默认相关的问题。我已经设法解决大部分与e.preventDefault();但只是不能解决这个问题,如何构建它。这可能是星期一早上白痴对我来说是诚实的大声笑,并与Java脚本非常绿色。

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

但是,你们的帮助将超级赞赏,因为我只需要添加e.preventDefault();到这个剧本,它应该都是花花公子。

EDIT

这是上述一个似乎是默认脚本:

$(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 2014-11-03 11:43:34

+0

对不起,如果我不清楚。我需要添加e.preventDefault();函数来阻止它在我的页面上默认其他选项。我不确定如何构建它以使其正常工作。感谢您的回复克里斯蒂:-) – MattLuka 2014-11-03 11:45:58

回答

1

你的意思是?

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

不幸的是,这并没有奏效。也许这不是什么问题,虽然我不能想到其他任何东西。 – MattLuka 2014-11-03 11:53:34

+0

e.stopPropagation()呢? – 2014-11-03 13:34:52

+0

仍然没有e.stopPropagation()的喜悦:-(我必须说我对最近发生的事情感到困惑,将e.preventDefault();添加到所有其他脚本中可以阻止此行为,但我无法破解这一行为。 – MattLuka 2014-11-03 13:48:01

2

你应该多看一些关于docs

.change([EVENTDATA],处理程序)

处理:型号:功能(事件eventObject)传递

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

非常感谢,尤其是阅读对我来说尤其有帮助,但这并没有阻止不必要的行为,我可能会在错误的树上咆哮 – MattLuka 2014-11-03 11:54:51

+0

也许你可以在[小提琴]中复制你的问题(http:// jsfiddle.com),你将有更大的机会进行调试。你不想执行什么? – 2014-11-03 11:55:57

+0

啊好计划我现在会这样做,并发布你们的链接 – MattLuka 2014-11-03 11:57:00

0

你应该在你的函数中添加一个事件对象。

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

感谢您的帮助OG!这不幸的是没有工作,所以我想知道如果我在其他地方有问题,所以我将不得不检查事情。尽管只有脚本将另一个重置为默认值。 – MattLuka 2014-11-03 11:56:31

0

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

如果你想阻止其他事件处理程序运行时,可以调用根据情况e.stopPropagation()e.stopImmediatePropagation()

虽然这是一个小小的危险,因为它将取决于您绑定事件侦听器的哪些元素以及它们绑定的顺序。

+0

好的,这很有趣,非常感谢Nathan。我会尝试将它们放入并看看我得到了什么结果。 – MattLuka 2014-11-03 13:00:46

+0

仍然没有这些喜悦:-(我一直在倾诉代码,但没有线索到目前为止! – MattLuka 2014-11-03 13:51:55