Javascript Onclicks не работает? - PullRequest
0 голосов
/ 09 января 2011

У меня есть приложение jQuery, которое находит определенный div и редактирует его внутренний HTML. Делая это, он добавляет несколько div с onclicks, предназначенными для вызова функции в моем JS.

По какой-то странной причине, нажатие на них никогда не работает, если в моем наборе кодов определена функция для активации. Тем не менее, он прекрасно работает при вызове "alert (" Testing ");".

Я совершенно сбит с толку, поскольку в прошлом мне удавалось заставить сгенерированные кодом клики работать нормально. Единственное, что здесь нового - это jQuery.

Код:

function button(votefor)
{
    var oc = 'function(){activate();}'
    return '<span onclick=\''+oc+'\' class="geoBut">'+ votefor +'</span>';
}

В другом месте в коде:

var buttons = '';
    for (var i = 2; i < strs.length; i++)
    {
        buttons += button(strs[i]);
    }
    var output = '<div name="pwermess" class="geoCon"><div class="geoBox" style=""><br/><div>'+text+'</div><br/><div>'+buttons+'</div><br/><div name="percentages"></div</div><br/></div>';
$(obj).html(output);

В другом месте:

function activate()
{
    alert("Testing");
}

Ответы [ 3 ]

2 голосов
/ 09 января 2011

Возможно, вы захотите взглянуть на jQuery.live(eventType, eventHandler), который связывает обработчик событий с объектами (соответствующими селектору) всякий раз, когда они создаются, например:

$(".somebtn").live("click", myClickHandler);
1 голос
/ 09 января 2011

Следует за фиктивным примером, может быть, это поможет вам.

<!DOCTYPE html>
<html>
<head>
<style>

</style>

<script src="http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js"></script>
<script type="text/javascript">

$(function() {

        $('.go-right').click(function(){

                c="Hello world";
                $("#output").html(c);
        });

});

</script>

</head>
<body >


<div id="output"></div>

<a class="go-right">RIGHT</a>

</body>
</html>
0 голосов
/ 10 января 2011

Изменить это:

var oc = 'function(){activate();}'

Вместо этого:

var oc = 'activate();'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...