【问题标题】:jQuery assign click event handler on page loadjQuery在页面加载时分配点击事件处理程序
【发布时间】:2016-09-04 00:17:51
【问题描述】:

我想为页面加载功能中的按钮分配一个点击处理程序。然后,我想稍后使用以下代码 sn-p 处理按钮的实际单击:

 $("#finish").off('click').on('click', function () {
            var sku = $("#productSKU").val();
            var name = $("#productName").val();
            var affiliateId = $("#AffiliateID").val();
            var Errors = "";
            var category = null;
            var defaultName = $('#defaultImgName').val();

            if ($("#childCategories_" + categoryLevel).length == 0) {
                category = $("#categoryList").val();
            }
            else if ($("#childCategories_" + categoryLevel).val() == 0) {
                category = null;
            }
            else {
                category = $("#childCategories_" + categoryLevel).val();
            }

            if (!sku) {
                Errors += "<li> You can not add a product without an Item Code</li>";
            }
            if (!name) {
                Errors += "<li> You can not add a product without a Name</li>";
            }
            if (!category) {
                Errors += "<li> You can not add a product without a Category</li>";
            }

            if (Errors != "") {
                cua({ text: Errors, type: 'danger' })
            }
            else {
                data.formData = { productName: name, productSKU: sku, affiliateID: affiliateId, categoryID: category, defaultImgName: defaultName }
                data.submit();
            }
        });

如何在页面加载时分配点击事件处理函数,然后触发实际的点击事件?

原因是如果没有上传图片,就会导致按钮无响应的错误,我发现这是由事件处理问题引起的。

【问题讨论】:

  • 请说明“稍后触发点击的实际事件”。
  • 还有“如果没有上传图片,按钮无响应”:)
  • 所以我想在页面加载函数中初始化点击事件处理程序。图片上传的函数很长(可能100行)。它有一堆 'on' 事件处理程序,用于在“完成”按钮的点击事件之后隐藏 ID
  • 你的意思是$("#finish").trigger('click');

标签: javascript jquery


【解决方案1】:
$(document).ready(function(){
    $("#finish").on('click', yourfunctionhere)
});

您可以将代码放在单独的函数中,因此如果您想将其关闭,然后再次打开,您只需一行代码即可完成。

$("#finish").on('click', yourfunctionhere)

要执行该功能,您可以触发点击(当处理程序打开时):

$("#finish").trigger('click');

(感谢@putvande 提醒)

【讨论】:

  • 我认为this 可以帮助您解决问题。
  • 用于委托事件。绑定到文档。如果#finish 被删除然后重新添加,则需要。
  • 谢谢。但是现在我得到一个未捕获的 ReferenceError: data is not defined on the: data.formData = { productName: name, productSKU: sku, associateID: associateId, categoryID: category, defaultImgName: defaultName }
  • 例如一个例子。 jsfiddle.net 会更容易测试。你把函数和你的代码放在 $(document).ready() { } 里面了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 2011-10-29
相关资源
最近更新 更多