jQuery Attr()函数停止冒泡

时间:2013-10-24 17:10:06

标签: jquery html5 custom-data-attribute

有没有办法阻止jQuery中的attr()函数冒泡DOM树(或向下)?我尝试了stopPropagation()函数,但它似乎不适用于attr()。在我的代码中,我有一个在attr()上调用的函数,在该函数中我有另外两个attr()方法我也调用函数。我基本上有一个嵌套的foreach循环的jQuery版本(但是我试过了()但它没有用)。还有另一种方法可以阻止冒泡吗?

我的jQuery代码:

$(document).ready(function() {

    $("#assessform_page").on("submit", "#assessform", function(e) {
        e.preventDefault();
        assessrows = {};
        url = $(this).attr("action");

        $("div").attr("data-test-num", function(k) {
                    k.stopPropagation();
            assessrows[k + 1] = {};
            $("input, select").attr("data-tab-row", function(v) {
                            v.stopPropagation();
                assessrows[k + 1][$(this).attr("data-tab-row")] = $(this).val();
            });
            $("label").attr("data-tab-row", function(v) {
                            v.stopPropagation();
                assessrows[k + 1][$(this).attr("data-tab-row")] = $(this).text();
            });
        });
        console.log(assessrows);

    });

});

我的HTML代码:

<form id="assessform" action="review.php" method="post" enctype="application/x-www-form-urlencoded" name="assessform">
    <div data-test-num="1">
        <label data-tab-row="objname">First Value: </label>
        <select autofocus="autofocus" data-tab-row="status">
            // options
        </select>
        <input type="text" data-tab-row="numer" value="" />
        <br />
        <br />
    </div>
    <div data-test-num="2">
        <label data-tab-row="objname">Second Value: </label>
        <select data-tab-row="status">
            // options
        </select>
        <select data-tab-row="numer">
            // options
        </select>
        <input type="hidden" data-tab-row="denom" value="1" />
        <br />
        <br />
    </div>
    <button type="submit" name="submit-button" id="submit-button">Submit</button>
</form>

0 个答案:

没有答案