2011-06-06 3 views
1

Я использую следующий код, чтобы открыть внешние страницы в DIV на текущей странице:Pass HREF в JQuery

$(document).ready(function(){ 
    $("#content").load("content.html"); 
}); 

(function($) { 
$(function() { 
$('.load_link').click(function() { 
    $("#content").load($(this).attr('href')); 
    var $row = $(this).closest("tr"); 
    $row.removeClass("rownotselected").addClass("rowselected"); 
    $row.siblings("tr").removeClass("rowselected").addClass("rownotselected"); 
    return false; 
}); 

Тогда для фактической ссылки:

<a href="content2.html" class="load_link">Link text</a> 

Ссылок отображаются в таблицы, и мне нравится, чтобы сделать целую строку нажатой, чтобы открыть ссылку, а не просто текст. Previosuly я имел только одну страницу для загрузки, так что я жестко закодированное имя страницы в функции и просто открыл ее всякий раз, когда строка была нажата со следующим кодом:

<tr class="rownotselected load_link" style="cursor:pointer;"> 

Однако в настоящее время есть несколько строк, которые должны быть интерактивными которые указывают на разные страницы, поэтому мне нужно иметь возможность передать значение href функции через указанный метод таким же образом, как и для обычной ссылки. Это возможно?

Надеюсь, я поставил вопрос ясно, пожалуйста, дайте мне знать, если нет.

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

+0

Дубликат http://stackoverflow.com/questions/6245627/trigger-jquery-by-clicking-on-table-row? – Niklas

+0

@Niklas Это тот же код, но немного другой вопрос, я думаю ... – lonesomeday

+0

Извините, да, это другой вопрос, и я не хотел путать ответы. – Ross

ответ

0

Как об этом, используя has selector:

$('tr:has(.load_link)') // select tr elements that have .load_link descendants 
    .click(function(e) { 
     e.preventDefault(); 

     var link = $(this).find('a.load_link'); 

     $('#content').load(link.attr('href')); 
     $(this).removeClass('rownotselected').addClass('rowselected') 
       .siblings() 
        .removeClass("rowselected").addClass("rownotselected"); 
    }); 

Смотрите API:

+0

Отлично, спасибо! – Ross

+0

Не будет '$ ('tr.load_link')' вместо '$ ('tr: has (.load_link)')' лучше здесь, так как его разметка показала, что класс является частью элемента '' as Что ж? – Niklas

+1

@Niklas Я читал, что как «у меня было' load_link' на 'tr', теперь я положил его на' a'. Я согласен, что вопрос нечеткий, и ваш вопрос может быть действительным. – lonesomeday