Используйте событие click для изображения типа ввода, используя jquery - PullRequest
2 голосов
/ 10 апреля 2011

Я загружаю данные страницы, используя ajax.Где я хочу запустить функцию по щелчку для ввода, тип которого - изображение, а его идентификатор начинается с 'SubmitVote', за которым следует некоторое целое число.Ниже приведен код, который не работает.

$(function() {
    $('input:image[id^="submitVote"').live('click',function(){
        if(this.id.match(/^submitVote(\d+)$/)){
            var vote=$("#rtngCmb").val();
            var text=$("#userNote").val();
            var alertId=RegExp.$1;

            postVote(alertId, vote, text);
        }
    });
});

как это можно сделать?

Ответы [ 2 ]

3 голосов
/ 10 апреля 2011

Если вы не можете изменить разметку для включения класса, попробуйте следующее:

$('input[type="image"][id^="submitVote"]').live('click', function() {
    if (this.id.match(/^submitVote(\d+)$/)) {
        var vote = $("#rtngCmb").val();
        var text = $("#userNote").val();
        var alertId = RegExp.$1;

        postVote(alertId, vote, text);
    }
});

Простой пример на jsfiddle

Кроме того, причина, по которой вы не работали последние ], отсутствовала в вашем селекторе.

1 голос
/ 10 апреля 2011

Лучше всего дать всем своим изображениям, которые начинаются с submitVote определенного класса

<input id='submitVote1' type='image' src='image.png' class='submit' />
<input id='submitVote2' type='image' src='image.png' class='submit' />

Таким образом, вы можете просто сделать ...

$('input.submit').live('click',function(){
        var vote=$("#rtngCmb").val();
        var text=$("#userNote").val();
        var alertId=RegExp.$1;
        postVote(alertId, vote, text);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...