我有一个显示隐藏div的函数,用于表单中的错误消息传递。
对于这个功能,我需要div根据场景显示在2个不同的位置。因此,如果单击特定的提交按钮,我需要添加一个类。我可以编写一个单独的函数,但我想将它包含在我当前处理div显示的函数中:
function giftAlert(){
var args = arguments;
if(args.length > 1) {
// check that custom alert was called with at least two arguments
var msg = args[0];
$('.errorPopup').hide();
$('.couponPopup').hide();
$('.promotionPopup').hide();
$("*").removeClass("alertRed");
$("*").removeClass("CO_form_alert");
var div = $(".giftPopup");
div.css({"display":"block"});
if (div.length == 0) {
div = $("<div class='giftPopup' onclick='$(this).hide();'></div>");
$("body").prepend(div);
}
div.html(msg);
for(var i = 1; i < args.length; i++) {
var inputID = args[i];
$("#"+inputID).addClass("CO_form_alert").parent().addClass("alertRed");
$('#' + inputID).focus();
$('#' + inputID).keydown(function() { $('.giftPopup').hide(); }).change(function() { $('.giftPopup').hide(); }).blur(function() { $('.giftPopup').hide(); });
}
}
}
所以这一位是:
var div = $(".giftPopup");
div.css({"display":"block"});
我想添加一些逻辑,如果单击input1,那么giftPopup会获得一个额外的类,但仅适用于input1。
帮助?
答案 0 :(得分:1)
假设你的input1元素由html <input class="input1" type=button />
组成,你在jQuery中需要做的就是:
$('.input1').click(function(){
$('.giftPopup').addClass('whatever');
});
答案 1 :(得分:1)
我只想将一个点击绑定到input1。这是一个JSFiddle,可以做一些对你有用的事情。
$(document).ready(function() {
$("#input1").live("click", function() {
$(".giftPopup").addClass("special");
});
});
除非您有充分的理由使用onclick,否则应使用jquery使用.live()或.delegate()绑定事件。在这种情况下你也可以使用.click()但是当你在向DOM添加元素时,你必须使用.live()或.delegate(),因为.click()不会对添加到的元素起作用。 DOM后来。
答案 2 :(得分:0)
您可以修改代码中的for
循环,如下所示。我希望这就是你要找的东西。
for(var i = 1; i < args.length; i++) {
var inputID = args[i];
var $input = $("#"+inputID);
$input.addClass("CO_form_alert").parent().addClass("alertRed");
$input.focus().keydown(function() { $('.giftPopup').hide(); }).change(function() { $('.giftPopup').hide(); }).blur(function() { $('.giftPopup').hide(); });
if(i == 1){
$input.click(function(){
$(".giftPopup").addClass("specifyClassNameHere");
});
}
}