2012-01-11 4 views
5

В последнее время я видел много сайтов, которые имеют объекты с кликом, у которых нет hrefs или onclicks в их html-коде. Я также попытался предупредить их href, onclick, onmousedown, атрибуты onmouseup, но он только говорит «undefined». Я замечаю, что на этих страницах много сложного javascript.кнопки без href, onclick и т. Д.

один сайт, в частности, озадачивает меня: http://www.sharenator.com/Boy_Teaches_His_Puppy_How_to_Eat/#/doggy_01_Boy_Teaches_His_Puppy_How_to_Eat-0.html

Это на самом деле очень хорошо. Кнопки также не могут быть выбраны. Ид кнопок - nextBtn, nextBtn2, prevBtn и prevBtn2.

У кого-нибудь есть идеи, как реализовать это?

+1

@karunchadhary Я вижу, что вы только что зарегистрированы, поэтому добро пожаловать в сообщество StackOverflow :) Если один из ответов ответил на ваш вопрос, отметьте его как правильный ответ. – Tehnix

ответ

4

Вы можете использовать функцию jQuery .click (callback) (http://api.jquery.com/click/) или .delegate (selector, 'click', callback) (до jQuery 1.7) и .on ('click', selector, callback) (jQuery 1.7 +) или .bind ('click', callback).

Благодаря Энтони Грист за указание на то, что .live() теперь не рекомендуется :)

Как так:

<button id="clickable">Click Me!!</button> 

Затем предназначаться кнопку с JQuery:

$("#clickable").click(function(){ 
    // Send user to this link 
    location.href = "http://www.takemehere.com"; 
}); 

Вы можете узнать об этом по ссылке, которую я дал, и на домашней странице jQuery.

UPDATE

Фактическая страница обрабатывает это с:

$('#prevBtn').mousedown (onBackward); 

Какой бы OnMouseDown вызов:

function onBackward() { 
    showImg (currentId - 1); 
} 

Использование клавиш со стрелками:

$(document).keyup (function (event) { 
    var activeElement = document.activeElement.tagName; 
    if (activeElement == 'INPUT' || activeElement == 'TEXTAREA') return; 
    //alert (window.location.pathname); 

    if (event.keyCode == 39) onForward(); 
    else 
    if (event.keyCode == 37) onBackward(); 
}); 

См. http://www.sharenator.com/js/slideshow.js для исходного кода слайд-шоу.

+0

'.live()' устарел, вы должны использовать '.on()' (jQuery 1.7+) или '.delegate()' (до jQuery 1.7). –

+0

как он реализует навигацию между картинками с «левыми» - «правыми» стрелками? –

+0

@ AnthonyGrist благодарит за это, не прочитал документацию некоторое время :) Edite мой код к вашему предложению. – Tehnix

0

С помощью javascript найдите элемент и передайте обработчик события onClick. например .:

var myElement = document.body; // or document.getElementById(...), etc. 
myElement.onclick = function(event) {alert(event);} 

Это не показывать что-либо в HTML, и как веб-сайт вы связаны делает это (нет другого способа определить поведение ... кроме того, может быть эзотерической CSS).

0

Вы можете попробовать использовать библиотеку jQuery ui - это может создать кнопки так, как вы указываете.

jQuery UI

0

обработчики событий, вероятно, связаны с использованием рамок Javascript, такие как JQuery. Они не используют свойство onclick элемента DOM. См. this jsFiddle для примера привязки обработчика события click к кнопке с jQuery, затем нажмите кнопку, чтобы увидеть значение onclick для этой кнопки (отображается как null в FF 9).

0

С javascript.Вот пример:.

<a id="uniqueId" href="#">Button</a> 

<script> 
    var button = document.getElementById('uniqueId'); 
    button.onclick = function(e) { 
     alert("clicked!"); 
    } 
</script> 
+0

Проблема с этим методом заключается в том, что я все равно увижу функция, когда я запускаю: 'alert (document.getElementById ('uniqueId'). onclick)' –

0

функции нажмите могут быть инициализированы в JS, например, $ ("# nextBtn") нажмите (функция);

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