2015-01-13 2 views
0

Я пытался добавить текст в поле с id #shouttext, но мне нужно обрезать значение из события onclick, которое сразу после ('а также delete') символов.Добавить окно ввода с JQuery

Так что, если у меня есть

<img src="images/smilies/at.png" alt="" title="" class="smilie smilie_9 smilie_pointer" onclick="MyBBEditor.insertText(':at:');"> 

Я хочу, чтобы получить

:at: 

и добавить его к входу с #shouttext идентификатором. Ниже мой код, который не работает - и я думаю, что его заблокировал определенное значение onclick, которое я пытался удалить.

<script type="text/javascript"> 
$(document).ready(function() { 
$('.smilie').click(function() 
{ 
    var s1,s1; 
    s1=attr("onclick"); 
    s1=s1.replace('MyBBEditor.insertText(\'', ''); 
    s2=s1.replace('\')', ''); 
    $('.smilie').attr('onclick','').unbind('click') 
    $('#shouttext').val($('#shouttext').val()+s2); 
}) 
}); 
</script> 

Благодарим за любую помощь заранее!

+0

У вас есть контроль над тегом изображения? –

+0

Я не понимаю, не могли бы вы объяснить это немного больше? – GamaPL

+0

просто интересно, можно ли удалить обработчик кликов на самом элементе. –

ответ

0

вместо развязывания его в клик, вы можете сделать

$(".smilie").attr("onclick", ""); // clear the already declared attribute. 

$(".smilie").on("click", function(){ 
    $('#shouttext').val($('#shouttext').val()+s2); 
}); 

Пример здесь http://jsfiddle.net/meougz1L/

$("img").attr("onclick",""); 

$("img").on("click", function(){ 
    alert("click event overridden"); 
}); 
+0

также не забудьте делегировать мероприятие, если необходимо. –

1

вы можете попробовать также:

var str = $(".smilie").attr("onclick").split("'")[1]; 

, чтобы получить :at: попробовать его здесь: fiddle теперь вы можете использовать его здесь:

$('.smilie').unbind("click"); 
$('.smilie').click(function() { 
    var str = $(".smilie").attr("onclick").split("'")[1]; 
    $('#shouttext').val($('#shouttext').val() + "" + str); 
}); 

или как @eg_dac говорит, вы можете переопределить click событие с $.on()

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