2014-11-03 51 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