2014-10-02 2 views
-1

Я работаю над страницей, которая отлично работает на данный момент, но я бы хотел сделать ее немного более отзывчивой, используя ajax. Итак, я хочу вызвать функцию JS и оставаться на странице при щелчке левой кнопкой мыши по ссылке, но при нажатии средней кнопкой мыши (для открытия новой вкладки) я не хочу выполнять эту функцию, но вместо этого открываю новую (например, регулярная ссылка).Либо выполните функцию или откройте новую вкладку с помощью Javascript

Сейчас у меня есть что-то вроде этого:

<a href="someSite.php" id="myLink">Link</a> 

и

myLink.onclick = function() { 
    doAjax(); 
    return false; 
}; 

Но в этом случае, щелкая средней кнопкой мыши вызывает функцию.

Есть ли способ без использования каких-либо обнаружений кнопок и без jQuery?

+0

возможного дубликата [Как определить среднюю кнопку мыши кликать?] (Http://stackoverflow.com/ вопросы/21224327/how-to-detect-middle-mouse-button-click) –

+0

Вам нужно будет проверить кнопку. Не существует «среднего» события кликов. – epascarello

ответ

0

Вы должны будете использовать некоторые JQuery,

$("#myLink").on("mousedown", "a.external", function(e) { 
     if((e.which == 1)) { 
       //left click make your ajax call 
     }else if((e.which == 2)) { 
       //middle click open your new tab 
       var _window = window.open('your link', '_blank'); 
       if(_window){ 
         _window.focus(); 
       }else{ 
         console.log('popup blocked'); 
       } 
     } 
     e.preventDefault(); 
}); 

Надеется, что это поможет вам

+1

live недействителен jQuery. Он был устаревшим в 1.7 и удален в версии 1.9. И OP сказал не с jQuery. – epascarello

+0

Ну, код обновлен – Ahmad

+0

@epascarello OP сказал ** или ** jQuery, так или иначе, не нужно * использовать jquery для этого. –